Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.0.0, 2.0.2, 2.0.3, 3.0.0 PDFBox
-
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
- is related to
-
PDFBOX-3659 Can't create text with PDFType1Font.ZAPF_DINGBATS or PDFType1Font.SYMBOL without installed fonts
- Closed