You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2017/07/20 15:28:50 UTC

svn commit: r1802507 - in /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser: COSParser.java FDFParser.java

Author: tilman
Date: Thu Jul 20 15:28:50 2017
New Revision: 1802507

URL: http://svn.apache.org/viewvc?rev=1802507&view=rev
Log:
PDFBOX-3639: FDF catalog dictionary only needs /FDF

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/FDFParser.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java?rev=1802507&r1=1802506&r2=1802507&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/COSParser.java Thu Jul 20 15:28:50 2017
@@ -1810,7 +1810,7 @@ public class COSParser extends BaseParse
                     if (dictionary != null)
                     {
                         // document catalog
-                        if (COSName.CATALOG.equals(dictionary.getCOSName(COSName.TYPE)))
+                        if (isCatalog(dictionary))
                         {
                             trailer.setItem(COSName.ROOT, document.getObjectFromPool(entry.getKey()));
                         }
@@ -1837,7 +1837,18 @@ public class COSParser extends BaseParse
         }
         return trailer;
     }
-    
+
+    /**
+     * Tell if the dictionary is a PDF catalog. Override this for an FDF catalog.
+     * 
+     * @param dictionary
+     * @return 
+     */
+    protected boolean isCatalog(COSDictionary dictionary)
+    {
+        return COSName.CATALOG.equals(dictionary.getCOSName(COSName.TYPE));
+    }
+
     /**
      * This will parse the startxref section from the stream.
      * The startxref value is ignored.

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/FDFParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/FDFParser.java?rev=1802507&r1=1802506&r2=1802507&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/FDFParser.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdfparser/FDFParser.java Thu Jul 20 15:28:50 2017
@@ -74,6 +74,18 @@ public class FDFParser extends COSParser
         init();
     }
 
+    /**
+     * Tell if the dictionary is a FDF catalog.
+     *
+     * @param dictionary
+     * @return
+     */
+    @Override
+    protected final boolean isCatalog(COSDictionary dictionary)
+    {
+        return dictionary.containsKey(COSName.FDF);
+    }
+
     private void init() throws IOException
     {
         String eofLookupRangeStr = System.getProperty(SYSPROP_EOFLOOKUPRANGE);