【问题标题】:How to convert dynamic html to pdf?如何将动态html转换为pdf?
【发布时间】:2021-03-07 00:56:55
【问题描述】:

我想将动态 html 转换为 pdf。以下代码展示了静态 html 到 pdf 的转换:

Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("d:/sample/pdfaskkea.pdf"));
        // step 3
        document.open();
        // step 4
        XMLWorkerHelper.getInstance().parseXHtml(writer, document,new FileInputStream("webcontent/jsp/index.jsp"), null); 
        
//        XMLWorkerHelper.getInstance().parseXHtml(writer, document,new FileInputStream("C:\\pdf_table1.html"), null);
        //step 5
        
        
         document.close();
 
        System.out.println( "PDF Created!" );

【问题讨论】:

  • XMLWorkerHelper.getInstance().parseXHtml 解析 XHtml。它执行 Java 服务器页面代码。因此,您需要在 Web 应用程序服务器(例如 Tomcat)上安装 index.jsp,然后使用页面使用的地址查询该服务器;这样,您将检索生成的 Html 页面,您最终可以将其输入到XMLWorkerHelper

标签: java html pdf


【解决方案1】:

根据您的问题,不清楚您在“动态 HTML”下的意思。

如果是使用 JSP 动态创建的 HTML,例如,PD4ML 提供了一个 JSP 自定义标签库 - 您只需将代码包围并输出 PDF 而不是 HTML。

如果在动态 HTML 下您指的是富含 JavaScript 的 HTML 页面,我建议您查看 PhantomJS,它可以转换也使用 JavaScript 即时构建的 HTML。 PhantomJS 是一个基于 WebKit 的原生独立应用程序。

【讨论】:

    【解决方案2】:

    您可以使用 itext pdf 库将 html 转换为丰富的 PDF 文件。要生成动态 HTML 内容,您可以使用 thymeleaf 等模板库。

    如果您有兴趣,我有一篇关于generating PDF files with thymeleaf in a spring boot 应用程序的详细文章。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-10
      • 1970-01-01
      • 2012-01-12
      • 1970-01-01
      相关资源
      最近更新 更多