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 2016/05/26 19:42:30 UTC
svn commit: r1745635 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PDFRenderer.java
Author: tilman
Date: Thu May 26 19:42:30 2016
New Revision: 1745635
URL: http://svn.apache.org/viewvc?rev=1745635&view=rev
Log:
PDFBOX-3359: move clearing after all transform operations, simplify code
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=1745635&r1=1745634&r2=1745635&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 Thu May 26 19:42:30 2016
@@ -136,7 +136,7 @@ public class PDFRenderer
g.setBackground(Color.WHITE);
}
- renderPage(page, g, image.getWidth(), image.getHeight(), scale, scale);
+ renderPage(page, g, scale);
g.dispose();
return image;
@@ -165,18 +165,14 @@ public class PDFRenderer
{
PDPage page = document.getPage(pageIndex);
// TODO need width/wight calculations? should these be in PageDrawer?
- PDRectangle adjustedCropBox = page.getCropBox();
- renderPage(page, graphics, (int)adjustedCropBox.getWidth(), (int)adjustedCropBox.getHeight(), scale, scale);
+ renderPage(page, graphics, scale);
}
// renders a page to the given graphics
- private void renderPage(PDPage page, Graphics2D graphics, int width, int height, float scaleX,
- float scaleY) throws IOException
+ private void renderPage(PDPage page, Graphics2D graphics, float scale) throws IOException
{
- graphics.scale(scaleX, scaleY);
+ graphics.scale(scale, scale);
// TODO should we be passing the scale to PageDrawer rather than messing with Graphics?
-
- graphics.clearRect(0, 0, width, height);
PDRectangle cropBox = page.getCropBox();
int rotationAngle = page.getRotation();
@@ -201,6 +197,16 @@ public class PDFRenderer
graphics.translate(translateX, translateY);
graphics.rotate((float) Math.toRadians(rotationAngle));
}
+
+ if (scale < 1)
+ {
+ // avoid black line
+ graphics.clearRect(0, 0, (int) (cropBox.getWidth() + 1), (int) (cropBox.getHeight() + 1));
+ }
+ else
+ {
+ graphics.clearRect(0, 0, (int) cropBox.getWidth(), (int) cropBox.getHeight());
+ }
// the end-user may provide a custom PageDrawer
PageDrawerParameters parameters = new PageDrawerParameters(this, page);