Java: 1,8
pdfbox: 2.0.18
предпечатная проверка: 2.0.18
Я могу создать рабочий PDF, но наши требования заключаются в том, что он должен соответствовать в PDF / A стандарты. Мне удалось исправить все проблемы проверки, кроме метаданных.
Без добавления каких-либо метаданных я получаю сообщение об ошибке:
The fileexample.pdf is not valid, error(s) :
7.1 : Error on MetaData, Metadata is not a stream
Следуя некоторым примерам (для v2 + нет документации по этому вопросу) Я придумал следующее:
PDMetadata documentMetadata = new PDMetadata(document);
XMPMetadata xmpMetadata = XMPMetadata.createXMPMetadata();
xmpMetadata.createAndAddPFAIdentificationSchema();
XmpSerializer serializer = new XmpSerializer();
ByteArrayOutputStream out = new ByteArrayOutputStream();
serializer.serialize(xmpMetadata, out, false);
documentMetadata.importXMPMetadata(out.toByteArray());
catalog.setMetadata(documentMetadata);
, что дает мне ошибку:
The fileexample.pdf is not valid, error(s) :
7.1 : Error on MetaData, xmp should start with a processing instruction
Затем я попытался изменить сериализатор на true для withXpacket, и я получил следующее ошибка:
org.apache.pdfbox.preflight.exception.ValidationException: Failed while validating
at org.apache.pdfbox.preflight.process.MetadataValidationProcess.validate(MetadataValidationProcess.java:162)
at org.apache.pdfbox.preflight.utils.ContextHelper.callValidation(ContextHelper.java:102)
at org.apache.pdfbox.preflight.utils.ContextHelper.validateElement(ContextHelper.java:141)
at org.apache.pdfbox.preflight.PreflightDocument.validate(PreflightDocument.java:166)
at uk.ac.port.pdf.Main.validate(Main.java:53)
at uk.ac.port.pdf.Main.main(Main.java:21)
Caused by: org.apache.pdfbox.preflight.exception.ValidationException: Schemas not found in the given metadata representation
at org.apache.pdfbox.preflight.metadata.RDFAboutAttributeConcordanceValidation.validateRDFAboutAttributes(RDFAboutAttributeConcordanceValidation.java:51)
at org.apache.pdfbox.preflight.process.MetadataValidationProcess.validate(MetadataValidationProcess.java:99)
... 5 more
На данный момент я явно не понимаю, как это должно работать. Я нашел много разных примеров, но все они, кажется, работают для v1.8, а не для v2 +.
Может кто-нибудь предоставить мне хороший рабочий пример добавления метаданных PDF / A и схемы в PDF файл? На сайте нет документации, особенно для PDF / A.