/simsun.ttc is not a valid TTF or OTF file.

错误提示

错误提示一:

/simsun.ttc is not a valid TTF or OTF file.

后话:看到这个提示你是不是真觉得是这个问题,不是有效的ttf,跟otf文件,然后就换成otf类型的文件,就出现了下边这个错误

错误提示二:

Caused by: com.lowagie.text.DocumentException: Table 'name' does not exist in /static/SourceHanSerifSC-VF.otf at com.lowagie.text.pdf.TrueTypeFont.getBaseFont(Unknown Source) ~[itext-2.1.7.jar:na] at com.lowagie.text.pdf.TrueTypeFont.process(Unknown Source) ~[itext-2.1.7.jar:na] at com.lowagie.text.pdf.TrueTypeFontUnicode.(Unknown Source) ~[itext-2.1.7.jar:na] at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source) ~[itext-2.1.7.jar:na] at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source) ~[itext-2.1.7.jar:na] at com.lowagie.text.pdf.BaseFont.createFont(Unknown Source) ~[itext-2.1.7.jar:na] at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:201) ~[flying-saucer-pdf-9.1.6.jar:na] at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:193) ~[flying-saucer-pdf-9.1.6.jar:na] at org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResolver.java:188) ~[flying-saucer-pdf-9.1.6.jar:na] at hu.rfit.textile.service.impl.PdfPrinterService.printPDF(PdfPrinterService.java:53) ~[TextileApp-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT:4749

说明

本文我是需要生成一个pdf

引入的Maven

复制代码
<dependency>
    <groupId>com.itextpdf</groupId>
    <artifactId>itextpdf</artifactId>
    <version>5.5.13.1</version>
</dependency>

代码部分

复制代码
      BaseFont bfChinese1 = BaseFont.createFont("/fonts/SourceHanSerifSC-VF.otf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        //字体
        Font titleChi1nese = new Font(bfChinese1, 18, Font.BOLD, BaseColor.BLACK);
        Font titleChin1ese3 = new Font(bfChinese1, 12, Font.BOLD,BaseColor.BLACK);
        Font secondtitl1eChinese = new Font(bfChinese1, 10, Font.NORMAL,BaseColor.BLACK);

        BaseFont bfChinese = BaseFont.createFont("/fonts/simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
        log.info("Font loaded successfully from: " +bfChinese );
        //字体
        Font titleChinese = new Font(bfChinese, 18, Font.BOLD, BaseColor.BLACK);
        Font titleChinese3 = new Font(bfChinese, 12, Font.BOLD,BaseColor.BLACK);
        Font secondtitleChinese = new Font(bfChinese, 10, Font.NORMAL,BaseColor.BLACK);

此时这样是不行的,不管怎么操作都会出现上边的那两问题

解决

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>

问题就这么解决了。还有就是字体文件不要直接放在resource下边,有可能会出错

相关推荐
一百天成为python专家19 分钟前
python库之jieba 库
开发语言·人工智能·python·深度学习·机器学习·pycharm·python3.11
Go Dgg41 分钟前
【Go + Gin 实现「双 Token」管理员登录】
开发语言·golang·gin
27669582921 小时前
tiktok 弹幕 逆向分析
java·python·tiktok·tiktok弹幕·tiktok弹幕逆向分析·a-bogus·x-gnarly
十五年专注C++开发1 小时前
hiredis: 一个轻量级、高性能的 C 语言 Redis 客户端库
开发语言·数据库·c++·redis·缓存
WJ.Polar1 小时前
Python数据容器-集合set
开发语言·python
晓13131 小时前
JavaScript加强篇——第七章 浏览器对象与存储要点
开发语言·javascript·ecmascript
用户40315986396631 小时前
多窗口事件分发系统
java·算法
用户40315986396631 小时前
ARP 缓存与报文转发模拟
java·算法
小林ixn1 小时前
大一新手小白跟黑马学习的第一个图形化项目:拼图小游戏(java)
java
nbsaas-boot2 小时前
Go语言生态成熟度分析:为何Go还无法像Java那样实现注解式框架?
java·开发语言·golang