Author: jahewson Date: Mon Aug 4 19:02:25 2014 New Revision: 1615729 URL: http://svn.apache.org/r1615729 Log: PDFBOX-2213: NPE from PDFBOX-122
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=1615729&r1=1615728&r2=1615729&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 Aug 4 19:02:25 2014 @@ -410,6 +410,14 @@ public class PageDrawer extends PDFGraph */ private void drawString(PDFont font, String string, AffineTransform at) throws IOException { + if (string == null) { + // AWT fonts can't handle the case where there is no Unicode mapping for the character, + // as we don't know what character it is. We use the replacement character which is + // better than nothing, to show that something is missing. + LOG.error("Could not render a character in font " + font.getBaseFont()); + string = "\uFFFD"; // REPLACEMENT CHARACTER + } + Font awtFont = createAWTFont(font); FontRenderContext frc = new FontRenderContext(new AffineTransform(), true, true); GlyphVector glyphs = awtFont.createGlyphVector(frc, string);