Проверка PDF / A - PullRequest
       53

Проверка PDF / A

0 голосов
/ 27 июня 2019

Я пытаюсь проверить самостоятельно созданный файл PDF в соответствии со спецификацией PDF / A-1b, но я получаю ошибки ниже (Для проверки я использовал библиотеку Apache PDFBox Preflight. Версия для Apache PDFBox и Preflight - 2.0.15)

3.1.1: Неверное определение шрифта, Helvetica: в словаре шрифтов отсутствуют некоторые обязательные поля: firstChar, lastChar, widths.

3.1.3: Неверное определение шрифта, Helvetica: FontFileзапись отсутствует в FontDescriptor

3.1.1: неверное определение шрифта, ZapfDingbats: в словаре шрифтов отсутствуют некоторые обязательные поля: firstChar, lastChar, widths.

3.1.3: неверное определение шрифта, ZapfDingbats: запись FontFile отсутствует в FontDescriptor

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");
    uaProp.setTextPropertyValue("name", "part");
    uaProp.setTextPropertyValue("valueType", "Integer");
    uaProp.setTextPropertyValue("category", "internal");
    uaProp.setTextPropertyValue("description", "Indicates, which part of ISO 14289 standard is followed");
    uaSchema.addUnqualifiedSequenceValue("property", uaProp);
    metadata.getPDFExtensionSchema().addBagValue("schemas", uaSchema);
    metadata.getPDFExtensionSchema().setPrefix("pdfaid");
    metadata.getPDFExtensionSchema().setTextPropertyValue("part", "1");

1 Ответ

0 голосов
/ 27 июня 2019

Сообщения, связанные со шрифтом, связаны с тем, что вы использовали стандартные объекты шрифта 14 типа 1, например, PDType1Font.HELVETICA. PDF / A-1b требует, чтобы все шрифты были встроены. Таким образом, используйте PDType0Font.load() для загрузки ваших шрифтов. Для полей acroform обязательно используйте метод с третьим параметром false для предотвращения поднабора.

Сообщения, связанные с XMP, вызваны тем, что вы забыли установить соответствие «B». См. Также CreatePDFA.java в подпроекте примеров загрузки исходного кода.

...