在这里,我正在使用FUTURA字体创建pdf,但是我的BaseFont.createFont方法给出了错误。当前,已成功使用Halvetica字体创建PDF,但我希望使用FUTURA字体创建PDF。
在这里,我正在使用itextpdf5.5.13.jar进行此活动 我曾尝试使用
导入tiff文件BaseFont bf = BaseFont.createFont("futura",BaseFont.TIMES_ITALIC, BaseFont.EMBEDDED, true, bytesArray, null);
但是它给出了错误
com.itextpdf.text.DocumentException: Font 'futura' with 'Identity-H' is not recognized.
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:716)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:625)
at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:568)
这是我用来在PDF中编写的代码。
PdfContentByte cb = writer.getDirectContent();
File file = new File(p.getProperty("FONTFILE"));
byte[] bytesArray = new byte[(int) file.length()];
BaseFont bf = BaseFont.createFont("futura",BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true, bytesArray, null);
cb.saveState();
cb.beginText();
cb.moveText(x, y);
cb.setFontAndSize(bf, size);
cb.showText(text);
cb.endText();
cb.restoreState();
预期结果应为“ PDF应该使用Futura字体创建” 但这引发了异常。
答案 0 :(得分:0)
BaseFont.createFont
使用第一个参数来确定要实例化的字体类型。
boolean noThrow
参数)将返回null
或引发Exception
。在手头情况下,应加载真字体。因此,在
BaseFont bf = BaseFont.createFont("futura",BaseFont.IDENTITY_H, BaseFont.EMBEDDED, true, bytesArray, null);
用“ futura.ttf”代替“ futura”。甚至可以像最终那样使用字体文件的完整路径和文件名。