Play框架中的PDF模块

时间:2012-03-26 21:00:25

标签: java playframework pdf-generation itext

我正在使用pdf模块版本0.9,我遇到了一些麻烦 renderPDF。

我总是收到这条消息:

糟糕:CConvertException

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

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

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

TNks

更新

我正在测试whitout参数......然后异常继续。

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

在我看来:

<!DOCTYPE html>

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

TNKS

4 个答案:

答案 0 :(得分:1)

当HTML元素未正确关闭时,我也收到了此错误。例如,在<table>元素中,我有</th而不是</th>。为了找到错误的行,我只是删除了视图的块以缩小我的范围。

答案 1 :(得分:0)

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

  

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

     

请参阅样本和测试以获取示例。

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

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

答案 2 :(得分:0)

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

TNKS

答案 3 :(得分:0)

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

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

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

我认为这是一个令人遗憾的问题,因为堆栈跟踪包含了importFontFaces方法。

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