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());