如题,使用itext生成pdf,部署到linux上,会报如下异常。
com.lowagie.text.DocumentException: Table 'name' does not exist in /opt/extraClient/temporaryFont/msyh.ttf
at com.lowagie.text.pdf.TrueTypeFont.getBaseFont(Unknown Source)
at com.lowagie.text.pdf.TrueTypeFont.process(Unknown Source)
at com.lowagie.text.pdf.TrueTypeFontUnicode.<init>(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source)
at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:164)
at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:157)
at com.csair.csmbp.utils.PDFUtil.switchToPDF(PDFUtil.java:36)
maven jar如下:
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.2</version>
</dependency>
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>
急,麻烦会的dalao可以帮帮忙。
检查一下字体有没有安装
有字体文件,下载放上去的。
@南小鸟: 你再仔细检查一下,名字、路径啥的对不对
@南小鸟: 看这是找不到资源文件了
@尘世的夏: 我也是这么想的,但总感觉不应该。因为这个文件,我是从项目的资源文件夹拷贝一份出来放到新建的目录上的(我不能登录liux环境,烦躁)
@南小鸟: 参考这个搞一下
终于ok了
在pom.xml中添加
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>fonts/</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>fonts/</include>
</includes>
</resource>
</resources>
</build>
设置字体
BaseFont bf = BaseFont.createFont("/fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
这问题困扰了三天了,多亏有了您这帖子,感激不尽。