Java 截取呈现的HTML

Java 截取呈现的HTML,java,playframework,wkhtmltopdf,playframework-1.x,Java,Playframework,Wkhtmltopdf,Playframework 1.x,我正在使用play1.2.3编写一个web应用程序。其中一个功能是将呈现的HTML页面导出为PDF。我已经根据服务器发送的参数动态呈现了HTML模板。 我计划使用将呈现的HTML转换为PDF。是否有一种方法可以用于此目的截取最终的HTML(由框架通过替换所有模板标记来处理)。。?还是有更好的方法来实现这一点 已经有了一个模块: 如果您想自己做,您可以在控制器类中观察模板是如何加载的,并替换某些部分以将渲染模板作为字符串 protected static String renderTemplate

我正在使用
play1.2.3
编写一个web应用程序。其中一个功能是将呈现的
HTML
页面导出为
PDF
。我已经根据服务器发送的参数动态呈现了
HTML
模板。

我计划使用将呈现的HTML转换为PDF。是否有一种方法可以用于此目的截取最终的
HTML
(由框架通过替换所有模板标记来处理)。。?还是有更好的方法来实现这一点

已经有了一个模块:

如果您想自己做,您可以在控制器类中观察模板是如何加载的,并替换某些部分以将渲染模板作为字符串

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;
        }
    }
受保护的静态字符串renderTemplate(字符串模板名,映射参数){
试一试{
Template Template=TemplateLoader.load(Template(templateName));
//将模板放入字符串中
返回template.render(args);
}捕获(TemplateNotFoundException ex){
如果(例如isSourceAvailable()){
掷骰子;
}
StackTraceeElement=PlayException.GetInterestingStrackTraceeElement(ex);
if(元素!=null){
抛出新的TemplateNotFoundException(templateName,Play.classes.getApplicationClass(element.getClassName()),element.getLineNumber());
}否则{
掷骰子;
}
}

Thank@Seb我尝试了Play的PDF模块,它能够从HTML模板生成PDF。但是,由于数据量大,我的HTML同时具有水平和垂直滚动。生成的PDF处理垂直滚动,但不处理水平滚动。例如,在HTML表中,右侧的一些列(超出可见页面)被切断。这是一个已知的错误吗?使用pdf呈现时,您必须处理页面宽度并相应地设置表格尺寸。我从未遇到过水平滚动的问题,因此我不知道这是否由pdf模块管理。您可以查看yahpconverter站点(没有太多文档)为此,我可能在前面的评论中对我的问题措辞不当。例如,如果我在pageload中通过Javascript对呈现的HTML进行一些动态更改,PDF模块将无法使用这些更改。对吗?