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:58:47 UTC

svn commit: r1801497 - /pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java

Author: tilman
Date: Mon Jul 10 16:58:47 2017
New Revision: 1801497

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

Modified:
    pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java

Modified: pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java?rev=1801497&r1=1801496&r2=1801497&view=diff
==============================================================================
--- pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java (original)
+++ pdfbox/trunk/examples/src/main/java/org/apache/pdfbox/examples/printing/Printing.java Mon Jul 10 16:58:47 2017
@@ -27,7 +27,9 @@ import java.io.IOException;
 import javax.print.attribute.HashPrintRequestAttributeSet;
 import javax.print.attribute.PrintRequestAttributeSet;
 import javax.print.attribute.standard.PageRanges;
+import javax.print.attribute.standard.Sides;
 import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.interactive.viewerpreferences.PDViewerPreferences;
 import org.apache.pdfbox.printing.PDFPageable;
 import org.apache.pdfbox.printing.PDFPrintable;
 
@@ -113,6 +115,24 @@ public final class Printing
 
         PrintRequestAttributeSet attr = new HashPrintRequestAttributeSet();
         attr.add(new PageRanges(1, 1)); // pages 1 to 1
+        
+        PDViewerPreferences vp = document.getDocumentCatalog().getViewerPreferences();
+        if (vp != null && vp.getDuplex() != null)
+        {
+            String dp = vp.getDuplex();
+            if (PDViewerPreferences.DUPLEX.DuplexFlipLongEdge.toString().equals(dp))
+            {
+                attr.add(Sides.TWO_SIDED_LONG_EDGE);
+            }
+            else if (PDViewerPreferences.DUPLEX.DuplexFlipShortEdge.toString().equals(dp))
+            {
+                attr.add(Sides.TWO_SIDED_SHORT_EDGE);
+            }
+            else if (PDViewerPreferences.DUPLEX.Simplex.toString().equals(dp))
+            {
+                attr.add(Sides.ONE_SIDED);
+            }
+        }
 
         if (job.printDialog(attr))
         {