首页 新闻 会员 周边

itext:com.lowagie.text.DocumentException: Table 'name' does not exist in

0
悬赏园豆:60 [已解决问题] 解决于 2020-05-09 11:15

如题,使用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可以帮帮忙。

明日小路的主页 明日小路 | 菜鸟二级 | 园豆:466
提问于:2020-05-06 10:09
< >
分享
最佳答案
0

检查一下字体有没有安装

收获园豆:60
你说累不累 | 初学一级 |园豆:200 | 2020-05-06 10:36

有字体文件,下载放上去的。

明日小路 | 园豆:466 (菜鸟二级) | 2020-05-06 10:37

@南小鸟: 你再仔细检查一下,名字、路径啥的对不对

你说累不累 | 园豆:200 (初学一级) | 2020-05-06 10:41

@南小鸟: 看这是找不到资源文件了

你说累不累 | 园豆:200 (初学一级) | 2020-05-06 10:42

@尘世的夏: 我也是这么想的,但总感觉不应该。因为这个文件,我是从项目的资源文件夹拷贝一份出来放到新建的目录上的(我不能登录liux环境,烦躁)

明日小路 | 园豆:466 (菜鸟二级) | 2020-05-06 10:44

@南小鸟: 参考这个搞一下

你说累不累 | 园豆:200 (初学一级) | 2020-05-06 10:46
其他回答(1)
0

参考链接:
https://stackoverflow.com/questions/44572557/flying-saucer-pdf-table-name-does-not-exist-in-exception-on-ubuntu

终于ok了

  1. 在window下, 从 C:\Windows\Fonts 文件夹中,复制仿宋字体(simfang.ttf)到maven 项目中 src/main/resources/fonts/simfang.ttf

  1. 在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>

  2. 设置字体
    BaseFont bf = BaseFont.createFont("/fonts/simfang.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

淘淘和你在一起 | 园豆:202 (菜鸟二级) | 2020-10-21 19:21

这问题困扰了三天了,多亏有了您这帖子,感激不尽。

支持(0) 反对(0) lU无情 | 园豆:200 (初学一级) | 2021-07-15 10:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册