[ 
https://issues.apache.org/jira/browse/PDFBOX-4445?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tilman Hausherr updated PDFBOX-4445:
------------------------------------
    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?
{code}
 .../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)
                 {
{code}

  was:
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?
{code}
 .../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)
                 {
diff --git a/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java 
b/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
index 8ca955ed2..b2b28b258 100644
--- a/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
+++ b/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
@@ -721,6 +721,9 @@ public class COSParser extends BaseParser
                                     }
                                 }

{code}


> Language and Viewer Preferences are not properly merged
> -------------------------------------------------------
>
>                 Key: PDFBOX-4445
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4445
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Utilities
>    Affects Versions: 2.0.13, 3.0.0 PDFBox
>            Reporter: DerekLiu
>            Assignee: Tilman Hausherr
>            Priority: Major
>             Fix For: 2.0.14, 3.0.0 PDFBox
>
>
> 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?
> {code}
>  .../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)
>                  {
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to