我正在寻找一种简单的方法来允许我的应用程序的用户打印我点击按钮后生成的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();
我不想离开原始页面。
感谢。
答案 0 :(得分:0)
使用ResourceLink
代替按钮。将它传递给ByteArrayResource
的自定义子类,如下所示:
new ResourceLink("id", new ByteArrayResource("application/pdf", null, filename) {
@Override byte[] getData(Attributes att) {
// generate your PDF here
return byteArray;
}
}
点击此链接将生成PDF并将其发送到浏览器。
或者,创建一个AbstractResource
而不是ByteArrayResource
的子类,因为AbstractResource
更灵活。