当前位置: 首页 > 知识库问答 >
问题:

飞碟-pdf表格“名称”在ubuntu上的异常中不存在

商昂然
2023-03-14

我有一个简单的spring boot web应用程序,在那里我用飞碟创建了可下载的pdf——我用百里香叶渲染html中的pdf。它的工作很好,并产生正确的html字符串。我在windows上开发,在开发过程中生成pdf也很好,但在ubuntu服务器上不行。

    ITextRenderer renderer = new ITextRenderer();
    renderer.getFontResolver().addFont(fontFile, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);

fontFile是存在的,在ubuntu上也是,它可以被程序访问,并且可以访问它,但是当我想渲染一个pdf时,我得到了下面的异常。我不知道它到底是什么意思。

原因:com.lowagie.text。DocumentException:/opt/RFIT/TextileApp/conf/font/Rubik-Regular中不存在表“name”。ttf网址:com.lowagie.text.pdf.TrueTypeFont。getBaseFont(未知源)~[itext-2.1.7.jar:na],位于com.lowagie.text.pdf.TrueTypeFont。进程(未知源)~[itext-2.1.7.jar:na],位于com.lowagie.text.pdf.TrueTypeFontUnicode。(未知来源)~[itext-2.1.7.jar:na]at com.lowagie.text.pdf.BaseFont。createFont(未知源)~[itext-2.1.7.jar:na],位于com.lowagie.text.pdf.BaseFont。createFont(未知源)~[itext-2.1.7.jar:na],位于com.lowagie.text.pdf.BaseFont。createFont(未知源)~[itext-2.1.7.jar:na]位于org.xhtmlrenderer.pdf.ITextFontResolver.addFont(ITextFontResorver.java:201)~[flying-sater-pdf-9.1.6.jar:na]于org.xhtml渲染器.pdf.IExtFontResover.addFont[ITextFonterResolver.java/193)~[flying-ster-pdf-91.6.jar:na]位于组织.xhtml渲染器.pf.ITextFont解析器.addFoont(ITextFontResolver.gava:188)~[floying-satr-pdf-9.1.6.jar:na]在hu.rfit.texture.service.impl.PdfPrinterService.printPDF(PdfPringerService.java:53)~[TextileApp-1.0.0-SNAPSHOT.jar:1.0.0-SNAPSHOT:4749]

在一些论坛上,他们说我应该把字体添加到/usr/share/fonts dirt,然后重新构建字体缓存。但是它不起作用。

共有1个答案

艾令雪
2023-03-14

我在使用飞行索赫添加字体时遇到了同样的问题。问题的主要原因是裁剪字体文件。您的操作系统或专家筛选可能会导致此问题。在我的示例中,我使用了maven,以下步骤解决了问题。

如果使用maven,则应将字体文件添加到资源文件夹中。

例如

src/main/resources/fonts/sample font . 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);

希望对大家有所帮助。

 类似资料:
  • 我试图通过使用飞碟(9.0.7)库从XHTML生成一个PDF文件。文本和表格按预期呈现,但图像(png)不会显示在最终的PDF中。图像由绝对文件路径引用(例如< code > 我的java代码如下: 任何帮助都将不胜感激。

  • 这是一个例外。。 Java语言lang.ClassCastException:org。XHTMLender。提供BlockBox无法转换为组织。XHTMLender。牛顿表。桌子盒

  • 我已经成功地将我的索引页面转换成pdf格式,遵循来自互联网的文档,但是我不能使用带有参数的URL,如下所示 它返回错误,如何从这个url转换为PDF

  • 我正在尝试使用flyingsaucer将html文档保存为PDF,但当我查看Adobe Reader中的文档属性(页面大小:8.26 x 11.69英寸)时,生成的文档最终总是具有A4维度。 我确实阅读了文档,我正在传递css@page{size:letter;}风格虽然它确实对输出有影响,但在Adobe Reader中,页面大小始终保持在8.26 x 11.69。例如,如果我将页面大小设置为le

  • 使用飞碟以PDF格式打印图像。 超文本标记语言代码: 当我使用飞碟将HTML转换为PDF时。生成的PDF不会打印图像。 我需要使用任何特定的软件包来打印PDF格式的图像吗。如果你有任何问题,请告诉我。

  • 问题内容: 我正在使用飞碟将XHTML转换为PDF文档。我已经获得了仅可用于基本HTML和嵌入式CSS的代码,但是,现在,我试图将图像添加为PDF的标题。我想知道的是,是否有任何办法通过将图像文件读取为Java Image对象来添加图像,然后以某种方式将其添加到PDF(或XHTML中,就像它获得了虚拟的“ URL”一样)表示可用于呈现PDF的Image对象。有没有人做过这样的事情? 预先感谢您提供