pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tilman Hausherr <THaush...@t-online.de>
Subject Re: pdfbox - embeded pdf file
Date Tue, 18 Dec 2018 12:35:00 GMT
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-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: users-help@pdfbox.apache.org


Mime
View raw message