java – flying-saucer-pdf在ubuntu上的例外中不存在表’name’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – flying-saucer-pdf在ubuntu上的例外中不存在表’name’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2417字,纯文字阅读大概需要4分钟。
内容图文
我有一个简单的春季启动网络应用程序,在那里我创建可下载的PDF与flying-saucer-pdf从html我用百里香叶渲染.它工作正常并正确生成html字符串.我在Windows上开发并在开发期间生成pdf也运行良好,但在ubuntu服务器上不起作用.
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont(fontFile, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
fontFile存在,在ubuntu上也可以通过程序访问它,并且可以访问它,但是当我想渲染pdf时,我得到了以下异常.
我不知道它究竟意味着什么.
Caused by: com.lowagie.text.DocumentException: Table ‘name’ does not exist in
/opt/RFIT/TextileApp/conf/font/Rubik-Regular.ttf
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]
在一些论坛上,他们说我应该将字体添加到/usr/share / fonts dirt,并重新构建字体缓存.但它不起作用.
解决方法:
关于添加字体与飞碟有同样的问题.
问题主要原因是裁剪字体文件.您的操作系统或maven过滤可能会导致此问题.在我的例子中,我使用maven和以下步骤解决了这个问题.
如果您使用的是maven,则应将字体文件添加到资源文件夹中.
例如,
src/main/resources/fonts/samplefont.ttf
之后,您应该在pom.xml上定义资源,如下所示;
<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>
之后,您可以使用以下定义,
ITextRenderer renderer = new ITextRenderer();
renderer.getFontResolver().addFont("/fonts/samplefont.ttf",
BaseFont.IDENTITY_H,
BaseFont.EMBEDDED);
我希望它会有所帮助.
内容总结
以上是互联网集市为您收集整理的java – flying-saucer-pdf在ubuntu上的例外中不存在表’name’全部内容,希望文章能够帮你解决java – flying-saucer-pdf在ubuntu上的例外中不存在表’name’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。