【问题标题】:PDF Module in Play FrameworkPlay 框架中的 PDF 模块
【发布时间】:2012-03-26 21:00:24
【问题描述】:

我正在使用 0.9 版的 pdf 模块,但我遇到了一些麻烦 渲染PDF。

我总是收到这条消息:

糟糕:CConvertException

异常 CConvertException 导致发生意外错误: 错误:发生未处理的异常: com.lowagie.text.pdf.BaseFont.getCharBBox(I)[I

我在控制器中的方法很简单:

public static void showTermo(Long id) {
        User user = User.findById(id);
        renderPDF(user);
    }

TNks

更新

我现在正在测试没有参数..异常仍在继续。

public static void showTermo() {            
        renderPDF();
    }

在我看来:

<!DOCTYPE html>

<html>
<head>
    <title>Title</title>
</head>
<body>
    Hello
</body>
</html>

Tnk

【问题讨论】:

    标签: java playframework pdf-generation itext


    【解决方案1】:

    当 HTML 元素未正确关闭时,我也收到此错误。例如,在&lt;table&gt; 元素中,我使用&lt;/th 而不是&lt;/th&gt;。为了找到故障线,我只是删除了部分视图以缩小范围。

    【讨论】:

      【解决方案2】:

      我认为您得到这个是因为renderPDF 方法需要输入在 PDF 或 HTML 模板中。

      renderPDF 将首先查找 .pdf 模板。如果没有, 它将回退到 .html 模板。您可以使用 media="print" css 自定义要呈现的 PDF。结果是一个 PDF 文件。 render 方法使用与渲染 HTML 相同的模板。

      请参阅示例和测试示例。

      由于您使用的是User,它无法将其映射到模型中的 PDF 或 HTML 模板。

      Here 是 GitHub 上提供的示例 Application.java 控制器的链接,以获取有关如何正确使用此方法的示例。

      【讨论】:

      • Tnks 回答丹。例如,视图 generate.html 使用参数内容、选项和标题进行调用。我现在正在尝试呈现一个简单的视图,没有通过用户....我得到了同样的错误。
      【解决方案3】:

      问题解决了!! 在我的 lib 文件夹中,我有一个用于生成票证的 jar iText 2.1.0 ..... 现在没用 =( 不记得他了....

      Tnk

      【讨论】:

      • 我不太明白答案。究竟是什么解决了这个问题 - 添加或删除 iText jar?
      【解决方案4】:

      我自己也遇到了同样的异常,并将其归结为 fontawesome 的问题。我们刚刚将 fontawesome 升级到 3.2.1,这导致了问题的开始。正在呈现的 html 文件包括 fontawesome 的样式表:

      <link rel="stylesheet" type="text/css" href="@{'/public/stylesheets/font-awesome.css'}"> 
      

      我删除该链接后,异常就消失了。

      我知道这是一个非常棒的问题,因为堆栈跟踪包含一个 importFontFaces 方法。

      对我来说幸运的是,有问题的 html 文件实际上并没有使用 fontawesome,所以没有副作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多