将PDF文件作为XML消息发送

8
我想在xml消息中发送一个pdf文件。如何在Java中实现?在模式中使用什么数据类型?
2个回答

15

你可以将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>

如果您的项目已经使用了commons-codec,那么可以使用org.apache.commons.codec.binary.Base64来实现这个功能。它支持对分块数据和字符串进行编码。例如:

// 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)

谢谢,如果您喜欢我的回答,请考虑接受它。我很高兴能帮助您。 - Christopher Klewes

1

我建议您在某些标签中使用字节数组。例如:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接