You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2018/05/01 10:40:03 UTC
svn commit: r1830667 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
Author: lehmi
Date: Tue May 1 10:40:03 2018
New Revision: 1830667
URL: http://svn.apache.org/viewvc?rev=1830667&view=rev
Log:
PDFBOX-4057: allow rendering with different X and Y scale as proposed by Cornelis Hoeflake
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java?rev=1830667&r1=1830666&r2=1830667&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java Tue May 1 10:40:03 2018
@@ -217,7 +217,7 @@ public class PDFRenderer
}
g.clearRect(0, 0, image.getWidth(), image.getHeight());
- transform(g, page, scale);
+ transform(g, page, scale, scale);
// the end-user may provide a custom PageDrawer
PageDrawerParameters parameters = new PageDrawerParameters(this, page, subsamplingAllowed);
@@ -263,10 +263,25 @@ public class PDFRenderer
public void renderPageToGraphics(int pageIndex, Graphics2D graphics, float scale)
throws IOException
{
+ renderPageToGraphics(pageIndex, graphics, scale, scale);
+ }
+
+ /**
+ * Renders a given page to an AWT Graphics2D instance.
+ *
+ * @param pageIndex the zero-based index of the page to be converted
+ * @param graphics the Graphics2D on which to draw the page
+ * @param scaleX the scale to draw the page at for the x-axis
+ * @param scaleY the scale to draw the page at for the y-axis
+ * @throws IOException if the PDF cannot be read
+ */
+ public void renderPageToGraphics(int pageIndex, Graphics2D graphics, float scaleX, float scaleY)
+ throws IOException
+ {
PDPage page = document.getPage(pageIndex);
// TODO need width/wight calculations? should these be in PageDrawer?
- transform(graphics, page, scale);
+ transform(graphics, page, scaleX, scaleY);
PDRectangle cropBox = page.getCropBox();
graphics.clearRect(0, 0, (int) cropBox.getWidth(), (int) cropBox.getHeight());
@@ -278,9 +293,9 @@ public class PDFRenderer
}
// scale rotate translate
- private void transform(Graphics2D graphics, PDPage page, float scale)
+ private void transform(Graphics2D graphics, PDPage page, float scaleX, float scaleY)
{
- graphics.scale(scale, scale);
+ graphics.scale(scaleX, scaleY);
// TODO should we be passing the scale to PageDrawer rather than messing with Graphics?
int rotationAngle = page.getRotation();