在xml消息中发送pdf文件

时间:2010-12-23 09:12:19

标签: java xml pdf

我想在xml邮件中发送pdf文件。 我怎么在java中这样做?我在架构中使用什么数据类型?

事先提前

2 个答案:

答案 0 :(得分:13)

您可以将PDF文件转换为Base64二进制文件并将其包装到类型为xs:base64Binary的容器元素中。例如,您可以使用此架构定义将PDF文件放在xml消息中。

<xs:complexType name="documentType">
 <xs:sequence>
    <xs:element minOccurs="0" name="mimetype" type="xs:string" />
    <xs:element minOccurs="0" name="filename" type="xs:string" />
    <xs:element name="content" type="xs:base64Binary" />
 </xs:sequence>
</xs:complexType>

如果项目中已有org.apache.commons.codec.binary.Base64,则可以使用commons-codec进行此方法。它支持使用分块数据和字符串。例如:

// You can read in the PDF file with FileReader and get the bytes
// Please obey that this solution must be improved for large pdf files

Base64.encodeBase64(binaryData, true)

答案 1 :(得分:1)

我建议你在某些标签中使用bytes数组。例如:

<file>
  <name>Test.pdf</name>
  <content>here are the bytes of the file</content>
</file>

您可以使用JAXB从对象自动创建xml文件。