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