gpt4 book ai didi

java - 可以添加xmp :ModifyDate be avoided in itext7?

转载 作者:行者123 更新时间:2023-12-02 13:11:04 24 4
gpt4 key购买 nike

使用 itext7 从头开始​​创建 PDF/A 时,以下内容始终会添加到 XMP 元数据中:

<rdf:Description rdf:about=""
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
xmlns:pdfaExtension="http://www.aiim.org/pdfa/ns/extension/"
xmlns:pdfaSchema="http://www.aiim.org/pdfa/ns/schema#"
xmlns:pdfaProperty="http://www.aiim.org/pdfa/ns/property#"
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
xmlns:pdfuaid="http://www.aiim.org/pdfua/ns/id/"
xmlns:pdfaid="http://www.aiim.org/pdfa/ns/id/"
dc:format="application/pdf"
pdf:Producer="iText® 7.0.3-SNAPSHOT ©2000-2017 iText Group NV (AGPL-version)"
xmp:CreateDate="2017-05-09T15:02:05+02:00"
xmp:ModifyDate="2017-05-09T15:02:05+02:00"
pdfaid:part="2"
pdfaid:conformance="A">

我需要明确不设置 xmp:ModifyDate。我尝试将其从目录中删除,但无济于事:

PdfADocument pdf = new PdfADocument(writer, PdfAConformanceLevel.PDF_A_2A, OutputIntent);
Document document = new Document(pdf);
... add content to pdf ...
pdf.getCatalog().remove(PdfName.ModDate);
document.close();
writer.close();

但是,xmp:ModifyDate 仍然显示在 XMP 元数据中。

有没有办法确保只添加 xmp:CreateDate?

最佳答案

我将向您展示两种避免将 ModifyDate 添加到元数据的方法。

如果在关闭文档之前通过PdfDocumentInfo,则为第一个:

doc.getDocumentInfo().setMoreInfo(PdfName.ModDate.getValue(), null);
doc.close();

第二种方式更加灵活,通过重写PdfDocument/PdfADocument中的updateXmpMetadata方法来完成:

@Override
protected void updateXmpMetadata() {
// Do not forget to call the method of the base class!
super.updateXmpMetadata();
try {
XMPMeta meta = XMPMetaFactory.parseFromBuffer(getXmpMetadata(true));
// Here we remove the unwanted entry from the metadata
meta.deleteProperty(XMPConst.NS_XMP, PdfConst.ModifyDate);
setXmpMetadata(meta);
} catch (XMPException e) {
}
}

关于java - 可以添加xmp :ModifyDate be avoided in itext7?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43957866/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com