拦截呈现的HTML

时间:2012-06-15 10:22:18

标签: java playframework wkhtmltopdf playframework-1.x

我正在使用Play 1.2.3编写网络应用程序。其中一项功能是将呈现的HTML页面导出为PDF。我已经根据服务器发送的参数动态呈现了HTML模板 我打算使用wkhtmltopdf将呈现的HTML转换为PDF。有没有一种方法可以拦截最终HTML(由框架处理,通过替换所有模板标签)为此目的..?或者有更好的方法来实现这一目标吗?

1 个答案:

答案 0 :(得分:2)

已有一个模块:http://www.playframework.org/modules/pdf

如果您想自己动手,可以在Controller类中观察如何加载模板并替换某些部分以将渲染模板作为字符串

protected static String renderTemplate(String templateName, Map<String,Object> args) {
    try {
        Template template = TemplateLoader.load(template(templateName));
        // Get the template into a String
        return template.render(args);
    } catch (TemplateNotFoundException ex) {
        if (ex.isSourceAvailable()) {
            throw ex;
        }
        StackTraceElement element = PlayException.getInterestingStrackTraceElement(ex);
        if (element != null) {
            throw new TemplateNotFoundException(templateName, Play.classes.getApplicationClass(element.getClassName()), element.getLineNumber());
        } else {
            throw ex;
        }
    }