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

Tilman Hausherr resolved PDFBOX-4445.
-------------------------------------
    Resolution: Fixed

> 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 
> +++++++++++++++
>  .../main/java/org/apache/pdfbox/pdfparser/COSParser.java  |  3 +++
>  2 files changed, 18 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
>                                      }
>                                  }
>  
> +                                if( fileOffset == null ) {
> +                                  continue;
> +                                }
>                                  List<COSObject> stmObjects = 
> objToBeParsed.get(fileOffset);
>                                  if (stmObjects == 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