API 导出 pdf 文件报错(linux 服务器)
ExceptionConverter: com.lowagie2.text.DocumentException: /usr/share/fonts/cantarell/Cantarell-VF.otf is not a true type file.
at com.lowagie2.text.pdf.TrueTypeFontSubSet.createTableDirectory(TrueTypeFontSubSet.java:241)
at com.lowagie2.text.pdf.TrueTypeFontSubSet.process(TrueTypeFontSubSet.java:137)
at com.lowagie2.text.pdf.TrueTypeFontUnicode.writeFont(TrueTypeFontUnicode.java:336)
at com.lowagie2.text.pdf.FontDetails.writeFont(FontDetails.java:250)
at com.lowagie2.text.pdf.PdfWriter.addSharedObjectsToBody(PdfWriter.java:1212)
at com.lowagie2.text.pdf.PdfWriter.close(PdfWriter.java:1291)
at com.lowagie2.text.pdf.PdfDocument.close(PdfDocument.java:964)
at com.lowagie2.text.Document.close(Document.java:584)
at com.view.pdf.PdfReport.save(PdfReport.java:349)
at com.raqsoft.report.util.ReportUtils.exportToPDF(ReportUtils.java:461)。
该怎么解决这个问题?

报错指向的是某个字体文件,需检查字体是否正确安装,另外推荐优先使用 ttf 字体文件
老师,这个字体是正确安装的。这个字体是程序自动寻址使用的,我该介入程序使用 ttf 字体?
otf 应该是个可变字体,itext2 版本较低的话应该不支持,建议安装 ttf 字体文件。
![imagepng]()
导出 pdf 会默认在
这些路径下寻找字体,在对应目录下安装相关的 ttf 字体文件
谢谢两位老师,问题已解决。按照沙老师的建议,把上述报错字体删除,刷新字体缓存,重启应用后问题解决了。