带有 pdfbox 和 boxable 的 Font Awesome
Font Awesome with pdfbox and boxable
我正在尝试使用 bootstrap 中的超棒字体来使用它的图标。
我的代码是这样的:
PDDocument doc = new PDDocument();
PDPage page = addNewPage(doc);
PDFont font = PDTrueTypeFont.loadTTF(doc,new File("D:/workspace/pdfbox/PDF/src/fontawesome-webfont.ttf"));
//Create Header row
Row<PDPage> headerRow = table.createRow(15f);
Cell<PDPage> cell = headerRow.createCell(100, "\uf05e");
cell.setFont(font);
我得到以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: U+F05E is not available in this font's encoding: WinAnsiEncoding
at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.encode(PDTrueTypeFont.java:368)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:315)
at be.quodlibet.boxable.Paragraph.getLines(Paragraph.java:83)
at be.quodlibet.boxable.Paragraph.getHeight(Paragraph.java:154)
at be.quodlibet.boxable.Cell.getTextHeight(Cell.java:391)
at be.quodlibet.boxable.Cell.getCellHeight(Cell.java:366)
at be.quodlibet.boxable.Row.getHeight(Row.java:159)
at be.quodlibet.boxable.Table.getMinimumHeight(Table.java:697)
at be.quodlibet.boxable.Table.draw(Table.java:192)
at TableTest.main(TableTest.java:58)
我知道“\uf05e”在这个字体中是有效的。
有人知道问题出在哪里吗?
请加载字体
PDFont font = PDType0Font.load(doc,new File("D:/workspace/pdfbox/PDF/src/fontawesome-webfont.ttf"));
这允许使用除通常的标准字符之外的其他字符。这仅适用于 PDFBox 2.0 及更高版本。
我正在尝试使用 bootstrap 中的超棒字体来使用它的图标。
我的代码是这样的:
PDDocument doc = new PDDocument();
PDPage page = addNewPage(doc);
PDFont font = PDTrueTypeFont.loadTTF(doc,new File("D:/workspace/pdfbox/PDF/src/fontawesome-webfont.ttf"));
//Create Header row
Row<PDPage> headerRow = table.createRow(15f);
Cell<PDPage> cell = headerRow.createCell(100, "\uf05e");
cell.setFont(font);
我得到以下异常:
Exception in thread "main" java.lang.IllegalArgumentException: U+F05E is not available in this font's encoding: WinAnsiEncoding
at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.encode(PDTrueTypeFont.java:368)
at org.apache.pdfbox.pdmodel.font.PDFont.encode(PDFont.java:286)
at org.apache.pdfbox.pdmodel.font.PDFont.getStringWidth(PDFont.java:315)
at be.quodlibet.boxable.Paragraph.getLines(Paragraph.java:83)
at be.quodlibet.boxable.Paragraph.getHeight(Paragraph.java:154)
at be.quodlibet.boxable.Cell.getTextHeight(Cell.java:391)
at be.quodlibet.boxable.Cell.getCellHeight(Cell.java:366)
at be.quodlibet.boxable.Row.getHeight(Row.java:159)
at be.quodlibet.boxable.Table.getMinimumHeight(Table.java:697)
at be.quodlibet.boxable.Table.draw(Table.java:192)
at TableTest.main(TableTest.java:58)
我知道“\uf05e”在这个字体中是有效的。
有人知道问题出在哪里吗?
请加载字体
PDFont font = PDType0Font.load(doc,new File("D:/workspace/pdfbox/PDF/src/fontawesome-webfont.ttf"));
这允许使用除通常的标准字符之外的其他字符。这仅适用于 PDFBox 2.0 及更高版本。