You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ad...@apache.org on 2010/08/24 02:35:07 UTC

svn commit: r988362 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java

Author: adam
Date: Tue Aug 24 00:35:06 2010
New Revision: 988362

URL: http://svn.apache.org/viewvc?rev=988362&view=rev
Log:
PDFBOX-799: Add ability to ignore errors with AcroForms

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java?rev=988362&r1=988361&r2=988362&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/util/PDFMergerUtility.java Tue Aug 24 00:35:06 2010
@@ -63,6 +63,7 @@ public class PDFMergerUtility
     private List<InputStream> sources;
     private String destinationFileName;
     private OutputStream destinationStream;
+    private boolean ignoreAcroFormErrors = false;
 
     /**
      * Instantiate a new PDFMergerUtility.
@@ -241,18 +242,29 @@ public class PDFMergerUtility
             destCatalog.setOpenAction( srcCatalog.getOpenAction() );
         }
 
-        PDAcroForm destAcroForm = destCatalog.getAcroForm();
-        PDAcroForm srcAcroForm = srcCatalog.getAcroForm();
-        if( destAcroForm == null )
+        try
         {
-            cloneForNewDocument( destination, srcAcroForm );
-            destCatalog.setAcroForm( srcAcroForm );
+            PDAcroForm destAcroForm = destCatalog.getAcroForm();
+            PDAcroForm srcAcroForm = srcCatalog.getAcroForm();
+            if( destAcroForm == null )
+            {
+                cloneForNewDocument( destination, srcAcroForm );
+                destCatalog.setAcroForm( srcAcroForm );
+            }
+            else
+            {
+                if( srcAcroForm != null )
+                {
+                    mergeAcroForm(destination, destAcroForm, srcAcroForm);
+                }
+            }
         }
-        else
+        catch(Exception e)
         {
-            if( srcAcroForm != null )
+            // if we are not ignoring exceptions, we'll re-throw this
+            if(!ignoreAcroFormErrors)
             {
-                mergeAcroForm(destination, destAcroForm, srcAcroForm);
+                throw (IOException)e;
             }
         }
 
@@ -596,6 +608,16 @@ public class PDFMergerUtility
             }
         }
     }
+
+    public boolean isIgnoreAcroFormErrors()
+    {
+        return ignoreAcroFormErrors;
+    }
+
+    public void setIgnoreAcroFormErrors(boolean ignoreAcroFormErrors)
+    {
+        this.ignoreAcroFormErrors = ignoreAcroFormErrors;
+    }
     
 
 }