You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ja...@apache.org on 2014/08/04 21:02:25 UTC

svn commit: r1615729 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

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);