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

svn commit: r1801495 - /pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java

Author: tilman
Date: Mon Jul 10 16:57:34 2017
New Revision: 1801495

URL: http://svn.apache.org/viewvc?rev=1801495&view=rev
Log:
PDFBOX-3863: support duplex entry in ViewerPreferences

Modified:
    pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.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=1801495&r1=1801494&r2=1801495&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 Mon Jul 10 16:57:34 2017
@@ -44,6 +44,9 @@ import java.util.HashSet;
 import java.util.List;
 import java.util.Properties;
 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;
 import javax.swing.JCheckBoxMenuItem;
@@ -106,6 +109,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;
 
 /**
@@ -1220,9 +1224,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)