美文网首页
java读取字体文件tff,报错java.awt.FontFor

java读取字体文件tff,报错java.awt.FontFor

作者: 黎凡s | 来源:发表于2020-01-02 16:58 被阅读0次

    使用java加载外部字体,报错java.awt.FontFormatException: bad table, tag=一串数字,实际上是字体文件被损坏导致的。
    其根本原因是maven打包时,如果开启了filtering,会在打包时重新编译资源目录下的文件,导致某些类型的文件编译后无法使用。代码如下:

        <build>
            <finalName>${artifactId}</finalName>
            <!-- directory下文件输出目录 -->
            <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
            <resources>
                <resource>
                    <!--指定资源目录  -->
                    <directory>src/main/resources</directory>
                    <!-- 开启过滤,将maven中声明的参数替换directory下的文件中的参数 -->
                    <filtering>true</filtering>
                </resource>
            </resources>
        </build>
    
    解决方法为,在build标签下添加如下代码:
    <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <configuration>
                        <nonFilteredFileExtensions>
                            <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
                            <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
                            <nonFilteredFileExtension>xls</nonFilteredFileExtension>
                            <nonFilteredFileExtension>zip</nonFilteredFileExtension>
                            <nonFilteredFileExtension>cer</nonFilteredFileExtension>
                            <nonFilteredFileExtension>pfx</nonFilteredFileExtension>
                            <nonFilteredFileExtension>py</nonFilteredFileExtension>
                        </nonFilteredFileExtensions>
                    </configuration>
                </plugin>
            </plugins>
    

    通过在资源文件处理插件中排除对应类型的文件,即可避免问题

    相关文章

      网友评论

          本文标题:java读取字体文件tff,报错java.awt.FontFor

          本文链接:https://www.haomeiwen.com/subject/qgeooctx.html