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 2019/05/22 17:11:26 UTC

svn commit: r1859743 - in /pdfbox/branches/issue45: debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java

Author: tilman
Date: Wed May 22 17:11:26 2019
New Revision: 1859743

URL: http://svn.apache.org/viewvc?rev=1859743&view=rev
Log:
PDFBOX-4551: prevent printing when not authorized

Modified:
    pdfbox/branches/issue45/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
    pdfbox/branches/issue45/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java

Modified: pdfbox/branches/issue45/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java?rev=1859743&r1=1859742&r2=1859743&view=diff
==============================================================================
--- pdfbox/branches/issue45/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java (original)
+++ pdfbox/branches/issue45/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java Wed May 22 17:11:26 2019
@@ -110,6 +110,7 @@ import org.apache.pdfbox.filter.FilterFa
 import org.apache.pdfbox.io.IOUtils;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.common.PDPageLabels;
+import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
 import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
 import org.apache.pdfbox.pdmodel.font.PDType1Font;
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceCMYK;
@@ -1122,6 +1123,12 @@ public class PDFDebugger extends JFrame
         {
             return;
         }
+        AccessPermission ap = document.getCurrentAccessPermission();
+        if (!ap.canPrint())
+        {
+            JOptionPane.showMessageDialog(this, "You do not have permission to print");
+            return;
+        }
 
         try
         {

Modified: pdfbox/branches/issue45/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/issue45/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java?rev=1859743&r1=1859742&r2=1859743&view=diff
==============================================================================
--- pdfbox/branches/issue45/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java (original)
+++ pdfbox/branches/issue45/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java Wed May 22 17:11:26 2019
@@ -26,6 +26,7 @@ import java.util.Map;
 import javax.print.PrintService;
 
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.encryption.AccessPermission;
 import org.apache.pdfbox.printing.Orientation;
 import org.apache.pdfbox.printing.PDFPageable;
 
@@ -153,6 +154,12 @@ public final class PrintPDF
         {
             document = PDDocument.load(new File(pdfFile), password);
 
+            AccessPermission ap = document.getCurrentAccessPermission();
+            if (!ap.canPrint())
+            {
+                throw new IOException("You do not have permission to print");
+            }
+            
             PrinterJob printJob = PrinterJob.getPrinterJob();
             printJob.setJobName(new File(pdfFile).getName());