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:21 UTC

svn commit: r1859742 - in /pdfbox/trunk: 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:21 2019
New Revision: 1859742

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

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

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java?rev=1859742&r1=1859741&r2=1859742&view=diff
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java (original)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java Wed May 22 17:11:21 2019
@@ -113,6 +113,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;
@@ -1208,6 +1209,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/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java?rev=1859742&r1=1859741&r2=1859742&view=diff
==============================================================================
--- pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java (original)
+++ pdfbox/trunk/tools/src/main/java/org/apache/pdfbox/tools/PrintPDF.java Wed May 22 17:11:21 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;
 
@@ -145,6 +146,12 @@ public final class PrintPDF
 
         try (PDDocument 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());