Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-4445

Language and Viewer Preferences are not properly merged

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.13, 3.0.0 PDFBox
    • Fix Version/s: 2.0.14, 3.0.0 PDFBox
    • Component/s: Utilities
    • Labels:
      None

      Description

      Using Adobe Acrobat Pro DC to check the accessibility issue, it reported that:
      Primary language Failed Text language is specified
      Title Failed Document title is showing in title bar

      So we may need change the code to support it pass, could you please fix this?

       .../java/org/apache/pdfbox/multipdf/PDFMergerUtility.java | 15 +++++++++++++++
       1 file changed, 15 insertions(+)
      
      diff --git a/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java b/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
      index b0474f2b9..be01d32c9 100644
      --- a/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
      +++ b/pdfbox/src/main/java/org/apache/pdfbox/multipdf/PDFMergerUtility.java
      @@ -72,6 +72,7 @@ import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDDocume
       import org.apache.pdfbox.pdmodel.interactive.documentnavigation.outline.PDOutlineItem;
       import org.apache.pdfbox.pdmodel.interactive.form.PDAcroForm;
       import org.apache.pdfbox.pdmodel.interactive.form.PDField;
      +import org.apache.pdfbox.pdmodel.interactive.viewerpreferences.PDViewerPreferences;
       
       /**
        * This class will take a list of pdf documents and merge them, saving the
      @@ -422,12 +423,26 @@ public class PDFMergerUtility
                           }
                           tobeclosed.add(sourceDoc);
                           appendDocument(destination, sourceDoc);
      +          
      +                    if ( destinationDocumentInformation == null && sourceDoc.getDocumentInformation() != null ) {
      +                      destinationDocumentInformation = sourceDoc.getDocumentInformation();
      +                      destination.getDocumentCatalog().setLanguage( sourceDoc.getDocumentCatalog().getLanguage() );
      +                    }
                       }
                       
                       // optionally set meta data
                       if (destinationDocumentInformation != null)
                       {
                           destination.setDocumentInformation(destinationDocumentInformation);
      +                    if ( destinationDocumentInformation.getTitle() != null ) {
      +                      if ( destination.getDocumentCatalog().getViewerPreferences() == null ) {
      +                        destination.getDocumentCatalog().setViewerPreferences( new PDViewerPreferences( new COSDictionary() ) );
      +                      }
      +                      destination.getDocumentCatalog().getViewerPreferences().setDisplayDocTitle( true );
      +                    }
      +                    if ( destinationDocumentInformation.getCOSObject().getString( COSName.LANG ) != null ) {
      +                      destination.getDocumentCatalog().setLanguage( destinationDocumentInformation.getCOSObject().getString( COSName.LANG ) );
      +                    }
                       }
                       if (destinationMetadata != null)
                       {
      

        Attachments

          Activity

            People

            • Assignee:
              tilman Tilman Hausherr
              Reporter:
              liu1985629 Derek Liu
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: