加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用PDFbox将元数据添加到PDF文档?

发布时间:2020-12-15 04:36:27 所属栏目:Java 来源:网络整理
导读:我有一个PDF文档的输入流可供我使用.我想将主题元数据添加到文档中,然后保存它.我不知道该怎么做. 我在这里看到了一个示例食谱:https://pdfbox.apache.org/1.8/cookbook/workingwithmetadata.html 但是,它仍然是模糊的.以下是我正在尝试的地方以及我有疑问
我有一个PDF文档的输入流可供我使用.我想将主题元数据添加到文档中,然后保存它.我不知道该怎么做.

我在这里看到了一个示例食谱:https://pdfbox.apache.org/1.8/cookbook/workingwithmetadata.html

但是,它仍然是模糊的.以下是我正在尝试的地方以及我有疑问的地方

PDDocument doc = PDDocument.load(myInputStream);
PDDocumentCatalog catalog = doc.getDocumentCatalog();
InputStream newXMPData = ...; //what goes here? How can I add subject tag?
PDMetadata newMetadata = new PDMetadata(doc,newXMLData,false );
catalog.setMetadata( newMetadata );
//does anything else need to happen to save the document??
//I would like an outputstream of the document (with metadata) so that I can save it to an S3 bucket

解决方法

这个答案使用xmpbox并来自源代码下载中的 AddMetadataFromDocInfo example:

XMPMetadata xmp = XMPMetadata.createXMPMetadata();
DublinCoreSchema dc = xmp.createAndAddDublinCoreSchema();
dc.setDescription("descr");
XmpSerializer serializer = new XmpSerializer();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
serializer.serialize(xmp,baos,true);
PDMetadata metadata = new PDMetadata(doc);
metadata.importXMPMetadata(baos.toByteArray());
doc.getDocumentCatalog().setMetadata(metadata);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读