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; } /**