如何使用 iText 将 HTML 转换为 PDF [重复]

Posted

技术标签:

【中文标题】如何使用 iText 将 HTML 转换为 PDF [重复]【英文标题】:How to convert HTML to PDF using iText [duplicate] 【发布时间】:2013-07-23 10:38:16 【问题描述】:
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import com.itextpdf.text.Document;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfWriter;

public class GeneratePDF 
    public static void main(String[] args) 
        try 

            String k = "<html><body> This is my Project </body></html>";

            OutputStream file = new FileOutputStream(new File("E:\\Test.pdf"));

            Document document = new Document();
            PdfWriter.getInstance(document, file);

            document.open();

            document.add(new Paragraph(k));

            document.close();
            file.close();

         catch (Exception e) 

            e.printStackTrace();
        
    

这是我将 HTML 转换为 PDF 的代码。我可以转换它,但在 PDF 文件中它保存为整个 HTML,而我只需要显示文本。 &lt;html&gt;&lt;body&gt; This is my Project &lt;/body&gt;&lt;/html&gt; 被保存为 PDF,而它应该只保存 This is my Project

【问题讨论】:

试试这个***.com/questions/4712641/… 我需要在java中转换 Apache open office API 任何从 HTML 转换为 PDF/A-2 的选项? 【参考方案1】:

此链接可能有助于转换。

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

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

如果是大学项目,你甚至可以参加这些, http://pd4ml.com/examples.htm

给出将HTML转换为PDF的示例

【讨论】:

我的项目需要添加什么jar文件? 您将在链接本身中获得帮助,仍然转到此链接,复制 zip,获取 jar,放入构建路径:code.google.com/p/flying-saucer/downloads/list @Jayesh 有什么适用于 android 的解决方案,我可以在 android 中使用它吗?你知道如何在 android 中将 htlm 转换为 pdf 吗?【参考方案2】:

您可以像这样使用HTMLWorker 类(已弃用)来做到这一点:

import com.itextpdf.text.html.simpleparser.HTMLWorker;
//...
try 
    String k = "<html><body> This is my Project </body></html>";
    OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));
    Document document = new Document();
    PdfWriter.getInstance(document, file);
    document.open();
    HTMLWorker htmlWorker = new HTMLWorker(document);
    htmlWorker.parse(new StringReader(k));
    document.close();
    file.close();
 catch (Exception e) 
    e.printStackTrace();

或使用XMLWorker,(从this jar下载)使用此代码:

import com.itextpdf.tool.xml.XMLWorkerHelper;
//...
try 
    String k = "<html><body> This is my Project </body></html>";
    OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));
    Document document = new Document();
    PdfWriter writer = PdfWriter.getInstance(document, file);
    document.open();
    InputStream is = new ByteArrayInputStream(k.getBytes());
    XMLWorkerHelper.getInstance().parseXHtml(writer, document, is);
    document.close();
    file.close();
 catch (Exception e) 
    e.printStackTrace();

【讨论】:

但是 Html Worker 类不能正常工作,所以你能告诉我 Html Workerclass 我们需要哪个 jar 文件吗? 查看我的进口更新 但仍然 这是我的项目 这个显示在 Pdf 中,而我只需要显示这个我的项目只有 html 的内部文本 和其他东西,Deprecated 意味着方法或类仍然可用,但你不应该使用它。将逐步淘汰。有一个新的方法/类可以做同样的事情。 请出示您的进口商品。我在 jar 中找不到 PdfWriter 类。

以上是关于如何使用 iText 将 HTML 转换为 PDF [重复]的主要内容,如果未能解决你的问题,请参考以下文章

iText 7 将 HTML 转换为 PDF - 如何查看整个宽表?

使用 iText 将 HTML 转换为 PDF

iText7 将 HTML 转换为 PDF“System.NullReferenceException”。

如何使用iText的HTML转换为PDF

iText PDF;如何使用 Java 将 jpeg2000 转换为 jpg

将 itext pdf 保存为没有物理存在的 blob。