为了账号安全,请及时绑定邮箱和手机立即绑定

PDF/A 验证

PDF/A 验证

幕布斯6054654 2023-02-23 16:35:11
我正在尝试根据 PDF/A-1b 规范验证自己创建的 PDF 文件,但出现以下错误(为了验证,我使用了 Apache PDFBox Preflight 库。Apache PDFBox 和 Preflight 的版本是 2.0.15)3.1.1:无效的字体定义,Helvetica:字体字典中缺少一些必填字段:firstChar、lastChar、宽度。3.1.3:无效的字体定义,Helvetica:FontDescriptor 中缺少 FontFile 条目3.1.1:无效的字体定义,ZapfDingbats:字体字典中缺少一些必需的字段:firstChar、lastChar、宽度。3.1.3:无效的字体定义,ZapfDingbats:FontDescriptor 中缺少 FontFile 条目7.11.1:元数据错误我怎样才能克服上述问题。先感谢您PDResources resources = new PDResources();resources.put(COSName.getPDFName("Helv"), pdfPage.getText1Font());String deafultAppearance = "/Helv 12 Tf 0 g";form.setDefaultResources(resources);form.setDefaultAppearance(deafultAppearance);pdDocument.getDocumentCatalog().setAcroForm(form);   metadata.createAndAddPDFAExtensionSchemaWithDefaultNS();  metadata.getPDFExtensionSchema().addNamespace("http://www.aiim.org/pdfa/ns/schema#", "pdfaSchema");                 metadata.getPDFExtensionSchema().addNamespace("http://www.aiim.org/pdfa/ns/property#", "pdfaProperty");                metadata.getPDFExtensionSchema().addNamespace("http://www.aiim.org/pdfa/ns/id/", "pdfaid");    XMPSchema uaSchema = new XMPSchema(XMPMetadata.createXMPMetadata(),                        "pdfaSchema", "pdfaSchema", "pdfaSchema");    uaSchema.setTextPropertyValue("schema", "PDF/A Accessibility Schema");    uaSchema.setTextPropertyValue("namespaceURI", "http://www.aiim.org/pdfa/ns/id/");                uaSchema.setTextPropertyValue("prefix", "pdfaid");    XMPSchema uaProp = new XMPSchema(XMPMetadata.createXMPMetadata(),                        "pdfaProperty", "pdfaProperty", "pdfaProperty");
查看完整描述

1 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

与字体相关的消息是因为您使用了标准的 14 种 1 型字体对象,例如PDType1Font.HELVETICA. PDF/A-1b 要求嵌入所有字体。因此用于PDType0Font.load()加载您的字体。对于 acroform 字段,请确保使用具有第三个参数的方法false来防止子集化。

XMP 相关消息是因为您忘记将一致性设置为“B”。另请参阅CreatePDFA.java源代码下载的示例子项目。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 106 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信