You should first make sure that both files are PDF/A-2b compatible, and
check each one separately, before checking the result.
The CIDSet problem sounds familiar - was that file created with PDFBox?
With what version?
Can you share the files?
Tilman
Am 18.12.2018 um 13:21 schrieb Sadlowski, Jaroslaw:
Hi,
I’m looking for a help with embeded pdf into other pdf-file using pdfbox lib .
When perform veraPDF verification newly created pdf file I get:
Have you got an idea what I’m doing wrong or I can give me any suggestion how I
can solve it ?
(the same file chcked on https://www.pdf-online.com/osa/validate.aspx passes
the validation but with info:
The document's meta data is either missing or inconsistent or corrupt.
The document does conform to the PDF/A-2b standard.
So I assume that I’m doing something wrong 😐
VeraPdf response:
Validation Report
File:
C:\Workspace\BundesArchive\Git\webscan-core\webscan-rendition-fragment\target\test-workspace\pdf-embedding-target\embedded-pdf.pdf
Validation Profile:
PDF/A-2B validation profile
PDF/A compliance:
Failed
Statistics
Version:
1.9.84
Build Date:
2017-11-29T15:10:00+01:00
Processing time:
00:00:01.666
Total rules in Profile:
121
Passed Checks:
36455
Failed Checks:
4
Validation information
Rule
Status
Specification: ISO 19005-2:2011, Clause: 6.2.11.4, Test number:
4<https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-62114-4>
If the FontDescriptor dictionary of an embedded CID font contains a CIDSet
stream, then it shall identify all CIDs which are present in the font program,
regardless of whether a CID in the font is referenced or used by the PDF or not.
Failed
1 occurrences
Show
Specification: ISO 19005-2:2011, Clause: 6.8, Test number:
1<https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-68-1>
A file specification dictionary, as defined in ISO 32000-1:2008, 7.11.3, may
contain the EF key, provided that the embedded file is compliant with either
ISO 19005-1 or this part of ISO 19005.
Failed
2 occurrences
Show
Specification: ISO 19005-2:2011, Clause: 6.4.3, Test number:
1<https://github.com/veraPDF/veraPDF-validation-profiles/wiki/PDFA-Parts-2-and-3-rules#rule-643-1>
When computing the digest for the file, it shall be computed over the entire
file, including the signature dictionary but excluding the PDF Signature itself.
Failed
1 occurrences
Show
Here is my code:
private void embeddPdfs(DocumentRenditionConfiguration documentRenditionConfiguration,
PDDocument destination, List<Map.Entry<String, PDDocument>> entries) throws
IOException {
PDFMergerUtility ut = new PDFMergerUtility();
boolean first = true;
Map embeddedFileMap = new HashMap();
for (Map.Entry<String, PDDocument> entry : entries) {
if (first) {
first = false;
ut.appendDocument(destination, entry.getValue());
} else {
//first create the file specification, which holds the embedded
file
try (ByteArrayOutputStream bout = new ByteArrayOutputStream()) {
entry.getValue().save(bout);
byte[] bytes = bout.toByteArray();
try (InputStream in = new ByteArrayInputStream(bytes);
PDDocument embeddedDestination =
createEmptyPDDocument(documentRenditionConfiguration.getRenditionOptions().getResultType()))
{
PDDocument embeddedDocument = PDDocument.load(in);
ut.appendDocument(embeddedDestination, embeddedDocument);
try (ByteArrayOutputStream embeddedBout = new
ByteArrayOutputStream()) {
embeddedDestination.save(embeddedBout);
byte[] embeddedBytes = embeddedBout.toByteArray();
try (InputStream embeddedIn = new
ByteArrayInputStream(embeddedBytes)) {
String filename = entry.getKey();
PDComplexFileSpecification
complexFileSpecification = new PDComplexFileSpecification();
complexFileSpecification.setFile(filename);
COSDictionary dict =
complexFileSpecification.getCOSObject();
dict.setString("UF",filename);
PDEmbeddedFile embeddedFile = new
PDEmbeddedFile(destination, embeddedIn);
embeddedFile.setSubtype("application/pdf");
embeddedFile.setSize(bytes.length);
embeddedFile.setCreationDate(new
GregorianCalendar());
addEssentialXmpMetadataForPDFA(embeddedDestination,documentRenditionConfiguration);
complexFileSpecification.setEmbeddedFile(embeddedFile);
embeddedFileMap.put(filename,
complexFileSpecification);
}
}
}
}
}
}
addEssentialXmpMetadataForPDFA(destination,documentRenditionConfiguration);
PDEmbeddedFilesNameTreeNode embeddedFilesTree = new
PDEmbeddedFilesNameTreeNode();
embeddedFilesTree.setNames(embeddedFileMap);
PDDocumentNameDictionary namesDictionary = new
PDDocumentNameDictionary(destination.getDocumentCatalog());
namesDictionary.setEmbeddedFiles(embeddedFilesTree);
destination.getDocumentCatalog().setNames(namesDictionary);
}
Best regards and thanks in advance
Jarek
DXC Technology Company -- This message is transmitted to you by or on behalf of
DXC Technology Company or one of its affiliates. It is intended exclusively for
the addressee. The substance of this message, along with any attachments, may
contain proprietary, confidential or privileged information or information that
is otherwise legally exempt from disclosure. Any unauthorized review, use,
disclosure or distribution is prohibited. If you are not the intended recipient
of this message, you are not authorized to read, print, retain, copy or
disseminate any part of this message. If you have received this message in
error, please destroy and delete all copies and notify the sender by return
e-mail. Regardless of content, this e-mail shall not operate to bind DXC
Technology Company or any of its affiliates to any order or other contract
unless pursuant to explicit written agreement or government initiative
expressly permitting the use of e-mail for such purpose.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: users-h...@pdfbox.apache.org