我想在xml邮件中发送pdf文件。 我怎么在java中这样做?我在架构中使用什么数据类型?
事先提前答案 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文件。