Author: tilman Date: Thu Jun 13 07:14:23 2024 New Revision: 1918287 URL: http://svn.apache.org/viewvc?rev=1918287&view=rev Log: PDFBOX-5837: add center parameter
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java?rev=1918287&r1=1918286&r2=1918287&view=diff ============================================================================== --- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java (original) +++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/printing/PDFPageable.java Thu Jun 13 07:14:23 2024 @@ -37,6 +37,7 @@ public final class PDFPageable extends B private final int numberOfPages; private final boolean showPageBorder; private final float dpi; + private final boolean center; private final Orientation orientation; private boolean subsamplingAllowed = false; private RenderingHints renderingHints = null; @@ -48,7 +49,7 @@ public final class PDFPageable extends B */ public PDFPageable(PDDocument document) { - this(document, Orientation.AUTO, false, 0); + this(document, Orientation.AUTO, false, 0, true); } /** @@ -59,12 +60,12 @@ public final class PDFPageable extends B */ public PDFPageable(PDDocument document, Orientation orientation) { - this(document, orientation, false, 0); + this(document, orientation, false, 0, true); } /** * Creates a new PDFPageable with the given page orientation and with optional page borders - * shown. The image will be rasterized at the given DPI before being sent to the printer. + * shown. * * @param document the document to print * @param orientation page orientation policy @@ -72,12 +73,13 @@ public final class PDFPageable extends B */ public PDFPageable(PDDocument document, Orientation orientation, boolean showPageBorder) { - this(document, orientation, showPageBorder, 0); + this(document, orientation, showPageBorder, 0, true); } /** * Creates a new PDFPageable with the given page orientation and with optional page borders - * shown. The image will be rasterized at the given DPI before being sent to the printer. + * shown. The image will be rasterized at the given DPI before being sent to the printer if + * non-zero. * * @param document the document to print * @param orientation page orientation policy @@ -87,10 +89,28 @@ public final class PDFPageable extends B public PDFPageable(PDDocument document, Orientation orientation, boolean showPageBorder, float dpi) { + this(document, orientation, showPageBorder, dpi, true); + } + + /** + * Creates a new PDFPageable with the given page orientation and with optional page borders + * shown. The image will be rasterized at the given DPI before being sent to the printer if + * non-zero, and optionally be centered. + * + * @param document the document to print + * @param orientation page orientation 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 PDFPageable(PDDocument document, Orientation orientation, boolean showPageBorder, + float dpi, boolean center) + { this.document = document; this.orientation = orientation; this.showPageBorder = showPageBorder; this.dpi = dpi; + this.center = center; numberOfPages = document.getNumberOfPages(); } @@ -217,7 +237,7 @@ public final class PDFPageable extends B { throw new IndexOutOfBoundsException(i + " >= " + numberOfPages); } - PDFPrintable printable = new PDFPrintable(document, Scaling.ACTUAL_SIZE, showPageBorder, dpi); + PDFPrintable printable = new PDFPrintable(document, Scaling.ACTUAL_SIZE, showPageBorder, dpi, center); printable.setSubsamplingAllowed(subsamplingAllowed); printable.setRenderingHints(renderingHints); return printable;