summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
index 83a9ac79..9a881687 100644
--- a/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
+++ b/pdf-over-gui/src/main/java/at/asit/pdfover/gui/workflow/states/PositioningState.java
@@ -42,6 +42,7 @@ import at.asit.pdfover.signator.SignatureParameter;
import at.asit.pdfover.signator.SignaturePosition;
import com.sun.pdfview.PDFFile;
+import com.sun.pdfview.decrypt.UnsupportedEncryptionException;
import com.sun.pdfview.decrypt.PDFAuthenticationFailureException;
/**
* Decides where to position the signature block
@@ -80,15 +81,20 @@ public class PositioningState extends State {
try
{
pdf = new PDFFile(buf);
+ if (pdf.getNumPages() > 0)
+ pdf.getPage(1);
+ else
+ throw new IOException();
}
catch (PDFAuthenticationFailureException e) {
throw new IOException(Messages.getString("error.PDFPwdProtected"), e);
}
catch (IOException e) {
- throw new IOException(Messages.getString("error.MayNotBeAPDF"), e); //$NON-NLS-1$
+ if (e.getCause() instanceof UnsupportedEncryptionException)
+ throw new IOException(Messages.getString("error.PDFProtected"));
+ else
+ throw new IOException(Messages.getString("error.MayNotBeAPDF"), e);
}
- if (pdf.getDefaultDecrypter().isEncryptionPresent())
- throw new IOException(Messages.getString("error.PDFProtected")); //$NON-NLS-1$
return pdf;
}