【问题标题】:Wicket 1.5 - Browser Pdf Print from freemaker template to byte[]Wicket 1.5 - 浏览器 Pdf 从 freemaker 模板打印到字节 []
【发布时间】:2012-10-02 06:20:17
【问题描述】:

我正在寻找一种简单的方法来允许我的应用程序的用户打印我在单击按钮后生成的 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();

我不想离开原来的页面。

谢谢。

【问题讨论】:

    标签: pdf wicket freemarker


    【解决方案1】:

    使用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 更灵活一些。

    【讨论】:

      猜你喜欢
      • 2010-09-17
      • 1970-01-01
      • 2012-12-17
      • 1970-01-01
      • 2014-03-01
      • 2010-11-20
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      相关资源
      最近更新 更多