0

我正在寻找一种简单的方法来允许我的应用程序的用户打印我在单击按钮后生成的 PDF。在Button的“onClick”中,我做了一些操作,然后调用这样的方法

Map<String,Object> m = new TreeMap<String,Object>();
m.put("paper", paperObject);
Template t = getConfiguration().getTemplate(TEMPLATE_NAME_CONSTANT);
String html = FreeMarkerTemplateUtils.processTemplateIntoString(t,m);
ByteArrayOutputStream os = HtmlToPdfRenderer.print(html);
return os.toByteArray();

我不想离开原始页面。

谢谢。

4

1 回答 1

0

使用 aResourceLink而不是按钮。将它传递给这样的自定义子类ByteArrayResource

new ResourceLink("id", new ByteArrayResource("application/pdf", null, filename) {
    @Override byte[] getData(Attributes att) {
        // generate your PDF here
        return byteArray;
    }
}

单击此链接将生成 PDF 并将其发送到浏览器。

或者,创建一个替代的子类AbstractResourceByteArrayResource因为AbstractResource它更灵活一些。

于 2012-10-12T14:52:21.890 回答