在过去的几个月里,我使用字体 Courier 生成了成千上万的 pdf(在开发时在 Windows 7 上,在测试和生产时在 OpenSuse 上)。
现在我有了使用 Arial 的目标。所以我在我们的属性文件中切换了字体名称,我得到了这个异常:
Stacktrace 片段:com.itextpdf.text.DocumentException:无法识别带有“Cp1252”的字体“Arial”。在 com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:708) 在 com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:615) 在 com.itextpdf.text.pdf.BaseFont.createFont (BaseFont.java:450)
google了一会儿后,我找到了解决方案。我只需要在设置中使用“Arial.ttf”(如文件名)。但在那之后,我得到了另一个例外:
java.io.IOException: Arial.ttf not found as file or resource. at com.itextpdf.text.io.RandomAccessSourceFactory.createByReadingToMemory(RandomAccessSourceFactory.java:224) at com.itextpdf.text.io.RandomAccessSourceFactory.createBestSource(RandomAccessSourceFactory.java:173) at com.itextpdf.text.pdf.RandomAccessFileOrArray.<init>(RandomAccessFileOrArray.java:147) at com.itextpdf.text.pdf.TrueTypeFont.process(TrueTypeFont.java:625) at com.itextpdf.text.pdf.TrueTypeFont.<init>(TrueTypeFont.java:369) at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:699) at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:615) at com.itextpdf.text.pdf.BaseFont.createFont(BaseFont.java:450)
所以有提示,itextpdf 现在正在寻找一个文件。所以我只是在C:\\Windows\\Fonts\\Arial.ttf
我们的配置中输入了文件名。现在它起作用了!
但目标只是使用“Arial”作为字体名称。可能吗?
非常感谢!