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 2014/06/09 21:35:55 UTC

svn commit: r1601490 - /pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java

Author: tilman
Date: Mon Jun  9 19:35:55 2014
New Revision: 1601490

URL: http://svn.apache.org/r1601490
Log:
PDFBOX-54: error message if document is encrypted

Modified:
    pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java

Modified: pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java?rev=1601490&r1=1601489&r2=1601490&view=diff
==============================================================================
--- pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java (original)
+++ pdfbox/branches/1.8/examples/src/main/java/org/apache/pdfbox/examples/fdf/SetField.java Mon Jun  9 19:35:55 2014
@@ -27,6 +27,8 @@ import org.apache.pdfbox.pdmodel.PDDocum
 import org.apache.pdfbox.exceptions.COSVisitorException;
 
 import org.apache.pdfbox.examples.AbstractExample;
+import org.apache.pdfbox.exceptions.CryptographyException;
+import org.apache.pdfbox.exceptions.InvalidPasswordException;
 
 /**
  * This example will take a PDF document and set a FDF field in it.
@@ -72,13 +74,15 @@ public class SetField extends AbstractEx
      * @throws IOException If there is an error importing the FDF document.
      * @throws COSVisitorException If there is an error writing the PDF.
      */
-    public static void main(String[] args) throws IOException, COSVisitorException
+    public static void main(String[] args) 
+            throws IOException, COSVisitorException, CryptographyException
     {
         SetField setter = new SetField();
         setter.setField( args );
     }
 
-    private void setField( String[] args ) throws IOException, COSVisitorException
+    private void setField( String[] args ) 
+            throws IOException, COSVisitorException, CryptographyException
     {
         PDDocument pdf = null;
         try
@@ -92,6 +96,18 @@ public class SetField extends AbstractEx
                 SetField example = new SetField();
 
                 pdf = PDDocument.load( args[0] );
+                if (pdf.isEncrypted())
+                {
+                    try
+                    {
+                        pdf.decrypt("");
+                    }
+                    catch (InvalidPasswordException e)
+                    {
+                        System.err.println("Error: The document is encrypted.");
+                        usage();
+                    }
+                }
                 example.setField( pdf, args[1], args[2] );
                 pdf.save( args[0] );
             }