Author: jahewson
Date: Fri Nov  6 00:37:41 2015
New Revision: 1712888

URL: http://svn.apache.org/viewvc?rev=1712888&view=rev
Log:
PDFBOX-2931: make centering printed content optional

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

Modified: 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java
URL: 
http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java?rev=1712888&r1=1712887&r2=1712888&view=diff
==============================================================================
--- 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java 
(original)
+++ 
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPrintable.java 
Fri Nov  6 00:37:41 2015
@@ -46,6 +46,7 @@ public final class PDFPrintable implemen
     private final boolean showPageBorder;
     private final Scaling scaling;
     private final float dpi;
+    private final boolean center;
 
     /**
      * Creates a new PDFPrintable.
@@ -91,11 +92,28 @@ public final class PDFPrintable implemen
      */
     public PDFPrintable(PDDocument document, Scaling scaling, boolean 
showPageBorder, float dpi)
     {
+        this(document, scaling, showPageBorder, dpi, true);
+    }
+    
+    /**
+     * Creates a new PDFPrintable with the given page scaling and with 
optional page borders shown.
+     * The image will be rasterized at the given DPI before being sent to the 
printer.
+     *
+     * @param document the document to print
+     * @param scaling page scaling policy
+     * @param showPageBorder true if page borders are to be printed
+     * @param dpi if non-zero then the image will be rasterized at the given 
DPI
+     * @param center true if the content is to be centered on the page 
(otherwise top-left).
+     */
+    public PDFPrintable(PDDocument document, Scaling scaling, boolean 
showPageBorder, float dpi,
+                        boolean center)
+    {
         this.document = document;
         this.renderer = new PDFRenderer(document);
         this.scaling = scaling;
         this.showPageBorder = showPageBorder;
         this.dpi = dpi;
+        this.center = center;
     }
     
     @Override
@@ -136,8 +154,11 @@ public final class PDFPrintable implemen
             graphics2D.translate(pageFormat.getImageableX(), 
pageFormat.getImageableY());
 
             // center on page
-            graphics2D.translate((imageableWidth - cropBox.getWidth() * scale) 
/ 2,
-                    (imageableHeight - cropBox.getHeight() * scale) / 2);
+            if (center)
+            {
+                graphics2D.translate((imageableWidth - cropBox.getWidth() * 
scale) / 2,
+                                     (imageableHeight - cropBox.getHeight() * 
scale) / 2);
+            }
 
             // rasterize to bitmap (optional)
             Graphics2D printerGraphics = null;


Reply via email to