2

我正在寻找一种快速有效的方法来从我的网站创建 pdf。pdf 将包含图像以及一些我可以作为 html 传递的文本。pdf 可能只是我传递的 html 的打印格式。类似于 CutePDF 所做的事情。可能吗?如何?请分享你的想法。

4

4 回答 4

3

尝试使用wkhtmltopdfwhich 服务于大多数情况。你必须安装这个小 exe / rpm。它首先使用webkit引擎渲染 并将网页转换为pdf htmlheadless browser mode安装后,您可以通过 java/php 应用程序调用它。它值得安装。

这是链接:http ://code.google.com/p/wkhtmltopdf/ 。

PS:我不为wkhtmltopdf:) 工作,我在我的一个项目中尝试了其他几个像 itext 一样的工具,但效果不如这个工具。

于 2012-07-03T12:15:16.657 回答
2

真的有可能在我做之前一周。我曾使用 java、servlet 和 jsp 来做同样的事情。

脚步 :

  1. 读取 html 文件并将其保存在字符串中。
  2. 使用 ITextRenderer 将 html 转换为 pdf
  3. 使用 setDocumentFromString() 从字符串中设置渲染文档
  4. 然后使用 createPDF() 方法创建 pdf
    • 您可以将pdf存储在指定路径或输出流中,我使用了输出流

示例代码:

Visit http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html
protected void doProcess(HttpServletRequest request,
        HttpServletResponse response){
    response.setContentType("application/pdf;");
    response.setHeader("Content-Disposition", "attachment; filename=Filenametodownload.pdf");       
    String reportContent = "<html><body><b>This is sample HTML</b></body></html>";
    ServletOutputStream sos =null;
    try {
        sos = response.getOutputStream();
    } catch (IOException e1) {          
        e1.printStackTrace();
    }
    String st = System.getProperty("user.dir");
    // ITextRenderer is only works fine with compailed version of core-renderer.jar 
    //Jar available in http://wo-repository.doit.com.br/content/repositories/thirdparty/org/xhtmlrenderer/core-renderer/R8-final/
    ITextRenderer renderer = new ITextRenderer();   
    //System.out.println(reportContent);
    renderer.setDocumentFromString(reportContent);
    renderer.layout();
    try {
        renderer.createPDF(sos);
    } catch (DocumentException e) {         
        e.printStackTrace();
    }

    try {       
        sos.close();
        session.removeAttribute("ReportContent");
    } catch (IOException e) {           
        e.printStackTrace();
    }
}

注意:包括 itext.jar 和 core-renderer.jar

试试这个方法你可以做到...一切顺利...

于 2012-08-07T11:11:07.917 回答
0

如果你想在服务器端进行 HTML->PDF 转换,并且你的服务器代码已经在 J​​ava 或 C#/.NET 中,你可以使用iText 中的XMLWorker。这是一个演示页面和一些文档(已过时,但应该很快更新)。

OTOH,如果您想在客户端进行转换,那么PDF打印机呢?我个人最喜欢的是PDFCreator。请注意,使用 PDF 打印机只是您的解决方案,不适用于浏览您网站的任何用户。

于 2012-07-03T13:36:32.117 回答
0

如果您不想安装 WKHTMLTOPDF 之类的工具,但仍需要完整的 CSS、HTML 和 Javascript 功能,您可以使用Sprint PDF。这是一个带有大量选项的在线 API。

于 2012-07-03T15:38:13.257 回答