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 2018/12/03 14:22:54 UTC
svn commit: r1848044 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Author: tilman
Date: Mon Dec 3 14:22:54 2018
New Revision: 1848044
URL: http://svn.apache.org/viewvc?rev=1848044&view=rev
Log:
PDFBOX-4391: switch off antialiasing when rendering on single color device because wrong rendering of barcodes
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1848044&r1=1848043&r2=1848044&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Mon Dec 3 14:22:54 2018
@@ -18,8 +18,10 @@ package org.apache.pdfbox.rendering;
import java.awt.BasicStroke;
import java.awt.Color;
+import java.awt.DisplayMode;
import java.awt.Graphics;
import java.awt.Graphics2D;
+import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.Paint;
import java.awt.Point;
@@ -217,7 +219,29 @@ public class PageDrawer extends PDFGraph
graphics.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_ON);
+ isBitonal() ?
+ RenderingHints.VALUE_ANTIALIAS_OFF :
+ RenderingHints.VALUE_ANTIALIAS_ON);
+ }
+
+ private boolean isBitonal()
+ {
+ GraphicsConfiguration deviceConfiguration = graphics.getDeviceConfiguration();
+ if (deviceConfiguration == null)
+ {
+ return false;
+ }
+ GraphicsDevice device = deviceConfiguration.getDevice();
+ if (device == null)
+ {
+ return false;
+ }
+ DisplayMode displayMode = device.getDisplayMode();
+ if (displayMode == null)
+ {
+ return false;
+ }
+ return displayMode.getBitDepth() == 1;
}
/**