Java加载外部字体场景
原因?
字体文件被损坏导致的,可以读取字体文件验证,其根本原因是maven打包时,如果开启了filtering,会在打包时重新编译资源目录下的文件,导致文件编译后无法使用。
解决?
前提:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>application-*.properties</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<includes>
<include>application-${profiles.active}.properties</include>
<include>application.properties</include>
</includes>
</resource>
</resources>
Maven:加了上面配置,在打包项目时会对项目进行统一编码,但是部分文件可能不需要进行重新编码,例如:加载的字体文件,所以需要过滤掉不需要编码的文件,不对其进行统一编码。
注:filtering是 maven 的 resource 插件 提供的功能,主要用来替换项目中的资源文件(*.xml、*.properties)当中的 ${…}。
解决方法:在build标签下添加如下代码,在资源插件中排除对应类型的文件。
例如,过滤文字文件,就只需加<nonFilteredFileExtension>ttf</nonFilteredFileExtension>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<!-- 过滤后缀不需要转码的文件后缀名.crt-->
<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>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/88976.html