41

有谁知道是否可以使用 iText 将 HTML 页面(url)转换为 PDF?

如果答案是“不”,那也没关系,因为我将停止浪费时间尝试解决问题,而只是在我知道可以的许多组件之一上花一些钱:)

提前感谢您的回复!

4

8 回答 8

29

我认为这正是您想要的

http://today.java.net/pub/a/today/2007/06/26/generating-pdfs-with-flying-saucer-and-itext.html

http://code.google.com/p/flying-saucer

Flying Saucer 的主要目的是将符合规范的 XHTML 和 CSS 2.1 作为 Swing 组件呈现到屏幕上。虽然它最初旨在将标记嵌入桌面应用程序(例如 iTunes 音乐商店),但 Flying Saucer 也已扩展了 iText 的工作。这使得将 XHTML 呈现为 PDF 以及图像和屏幕变得非常容易。飞碟需要 Java 1.4 或更高版本。

于 2009-07-08T07:17:47.287 回答
6

我最终使用了来自 webSupergoo 的 ABCPdf。它工作得非常好,根据您上面的评论,它为我节省了大约 350 美元。再次感谢丹尼尔和布拉奇的评论。

于 2008-11-22T12:46:18.557 回答
3

最简单的方法是使用 pdfHTML。它是一个 iText7 附加组件,可将 HTML5 (+CSS3) 转换为 pdf 语法。

代码非常简单:

    HtmlConverter.convertToPdf(
        "<b>This text should be written in bold.</b>",       // html to be converted
        new PdfWriter(
            new File("C://users/mark/documents/output.pdf")  // destination file
        )
    );

要了解更多信息,请访问http://itextpdf.com/itext7/pdfHTML

于 2017-09-04T09:11:44.623 回答
1

你的问题的答案实际上是双重的。首先,您需要指定您打算如何处理呈现的 HTML:将其保存到新的 PDF 文件,或在另一个呈现上下文中使用它(即,将其添加到您正在生成的其他文档中)。

前者使用 Flying Saucer 框架相对容易完成,可以在这里找到:https ://github.com/flyingsaucerproject/flyingsaucer

后者实际上是一个更全面的问题,需要进一步分类。使用 iText,您将无法(至少很简单)将 iText 元素(即ParagraphPhraseChunk)与生成的 HTML 结合起来。您可以通过使用ContentByte'addTemplate方法并为此模板生成 HTML 来解决此问题。

另一方面,如果您想在生成的 HTML 上加盖水印、日期等内容,您可以使用 iText 执行此操作。

所以底线:您不能轻易地将呈现的 HTML 集成到其他 pdf 生成上下文中,但您可以将 HTML 直接呈现为空白 PDF 文档。

于 2012-08-14T21:20:30.367 回答
0

使用 itext 库:

这是示例代码。它工作得很好:

        String htmlFilePath = filePath + ".html";
        String pdfFilePath = filePath + ".pdf";

        // create an html file on given file path
        Writer unicodeFileWriter = new OutputStreamWriter(new FileOutputStream(htmlFilePath), "UTF-8");
        unicodeFileWriter.write(document.toString());
        unicodeFileWriter.close();

        ConverterProperties properties = new ConverterProperties();
        properties.setCharset("UTF-8");
        if (url.contains(".kr") || url.contains(".tw") || url.contains(".cn") || url.contains(".jp")) {
            properties.setFontProvider(new DefaultFontProvider(false, false, true));
        }

        // convert the html file to pdf file.
        HtmlConverter.convertToPdf(new File(htmlFilePath), new File(pdfFilePath), properties);

Maven 依赖项

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext7-core</artifactId>
        <version>7.1.6</version>
        <type>pom</type>
    </dependency>

    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>html2pdf</artifactId>
        <version>2.1.3</version>
    </dependency>
于 2019-09-20T13:52:06.257 回答
-1

使用 iText 的 HTMLWorker

例子

于 2012-08-09T18:04:58.393 回答
-2

也许你可以尝试:

http://www.allcolor.org/YaHPConverter/

于 2008-12-22T12:21:32.693 回答
-2

今年早些时候我需要 HTML 到 PDF 的转换时,我尝试了 Winnovative HTML 到 PDF 转换器的试用(我认为 ExpertPDF 也是同一个产品)。效果很好,所以我们在那家公司购买了许可证。之后我就不再深入探讨了。

于 2008-12-04T22:18:21.817 回答