Uploaded image for project: 'PDFBox'
  1. PDFBox
  2. PDFBOX-3298

Can't show text (glyph) from ZapfDingbats font

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 2.0.0, 2.0.2, 2.0.3, 3.0.0 PDFBox
    • 2.0.3, 3.0.0 PDFBox
    • FontBox
    • None
    • Linux (kernel "3.19.0-32 generic"), Java "build 1.8.0_66-b17".

    Description

      I am unable to add glyphs from the standard ZapfDingbats font to a PDF document. The issue seems to be that the encoding for the font (WinAnsiEncoding) does not have mappings for the "non-ASCII (???)" PDF names used in the font ("aXX"). (However, the PDSimpleFont.glyphList does contain mappings between Unicode codepoints and PDF names.)

      Sample code:

      PDDocument document = PDDocument.load(new File("myfile.pdf"));
      PDPage page = document.getPages().get(0); // first page
      PDPageContentStream contentStream = new PDPageContentStream(document, page, AppendMode.APPEND, true);
      
      PDType1Font font = PDType1Font.ZAPF_DINGBATS;
      String glyph = "\u2714";
      
      contentStream.beginText();
      contentStream.setFont(font, fontSize);
      contentStream.newLineAtOffset(10, 10); // towards lower left corner of page
      contentStream.showText(glyph);
      contentStream.endText();
      contentStream.close();
      
      document.save("output.pdf");
      document.close();
      

      Exception thrown:

      Exception in thread "main" java.lang.IllegalArgumentException: U+2714 ('a20') is not available in this font's encoding: WinAnsiEncoding
          at org.apache.pdfbox.pdmodel.font.PDType1Font.encode(PDType1Font.java:345)
          at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
          :
      

      Attachments

        Issue Links

          Activity

            People

              tilman Tilman Hausherr
              fif Friedwin Fleischmann
              Votes:
              1 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: