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 2017/07/10 16:57:30 UTC
svn commit: r1801494 -
/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Author: tilman
Date: Mon Jul 10 16:57:30 2017
New Revision: 1801494
URL: http://svn.apache.org/viewvc?rev=1801494&view=rev
Log:
PDFBOX-3863: support duplex entry in ViewerPreferences
Modified:
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
Modified: pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java?rev=1801494&r1=1801493&r2=1801494&view=diff
==============================================================================
--- pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java (original)
+++ pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java Mon Jul 10 16:57:30 2017
@@ -42,6 +42,9 @@ import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import javax.print.attribute.HashPrintRequestAttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.standard.Sides;
import javax.swing.AbstractAction;
import javax.swing.Action;
@@ -103,6 +106,7 @@ import org.apache.pdfbox.debugger.ui.Zoo
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.common.PDPageLabels;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
+import org.apache.pdfbox.pdmodel.interactive.viewerpreferences.PDViewerPreferences;
import org.apache.pdfbox.printing.PDFPageable;
/**
@@ -1089,9 +1093,27 @@ public class PDFDebugger extends JFrame
{
PrinterJob job = PrinterJob.getPrinterJob();
job.setPageable(new PDFPageable(document));
- if (job.printDialog())
+ PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
+ PDViewerPreferences vp = document.getDocumentCatalog().getViewerPreferences();
+ if (vp != null && vp.getDuplex() != null)
{
- job.print();
+ String dp = vp.getDuplex();
+ if (PDViewerPreferences.DUPLEX.DuplexFlipLongEdge.toString().equals(dp))
+ {
+ pras.add(Sides.TWO_SIDED_LONG_EDGE);
+ }
+ else if (PDViewerPreferences.DUPLEX.DuplexFlipShortEdge.toString().equals(dp))
+ {
+ pras.add(Sides.TWO_SIDED_SHORT_EDGE);
+ }
+ else if (PDViewerPreferences.DUPLEX.Simplex.toString().equals(dp))
+ {
+ pras.add(Sides.ONE_SIDED);
+ }
+ }
+ if (job.printDialog(pras))
+ {
+ job.print(pras);
}
}
catch (PrinterException e)