【问题标题】:Convert Extent Report HTML file to PDF将范围报告 HTML 文件转换为 PDF
【发布时间】:2018-10-03 15:00:54
【问题描述】:

我正在尝试将范围报告 HTML 文件转换为 PDF,但是我没有成功。

下面是我试过的代码。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;

public class Demo 
{
public static void main( String[] args ) throws DocumentException,     IOException
{
Document document = new Document();
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("pdf.pdf"));
document.open();
XMLWorkerHelper.getInstance().parseXHtml(writer, document,new FileInputStream("html.html")); 
document.close();
System.out.println( "PDF Created!" );
}
}

Exception in thread "main" com.itextpdf.tool.xml.exceptions.RuntimeWorkerException: Invalid nested tag head found, expected closing tag link.
at com.itextpdf.tool.xml.XMLWorker.endElement(XMLWorker.java:134)
at com.itextpdf.tool.xml.parser.XMLParser.endElement(XMLParser.java:396)
at com.itextpdf.tool.xml.parser.state.ClosingTagState.process(ClosingTagState.java:70)
at com.itextpdf.tool.xml.parser.XMLParser.parseWithReader(XMLParser.java:236)
at com.itextpdf.tool.xml.parser.XMLParser.parse(XMLParser.java:214)
at com.itextpdf.tool.xml.parser.XMLParser.parse(XMLParser.java:175)
at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:238)
at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:210)
at com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(XMLWorkerHelper.java:183)
at com.tib.controlStatements.Demo.main(Demo.java:22)

HTML 文件链接:

https://drive.google.com/open?id=1UrHafoit0rJuhTC0QRqCe9bC5PMpqIWS

【问题讨论】:

  • 而“我没有找到任何成功”究竟是什么意思?发生了什么?您预计会发生什么?
  • 您的 html 文件中似乎有错误。您可以添加 html 文件吗?

标签: java pdf itext


【解决方案1】:

试试这个例子。您没有创建文件并尝试填充它。

package sandbox.xmlworker;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.pdf.PdfWriter;
import com.itextpdf.tool.xml.XMLWorkerHelper;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

import sandbox.WrapToTest;

@WrapToTest
public class D02_ParseHtml {

    public static final String HTML = "resources/xml/walden.html";
    public static final String DEST = "results/xmlworker/walden1.pdf";

    /**
     * Html to pdf conversion example.
     * @param file
     * @throws IOException
     * @throws DocumentException
     */
    public void createPdf(String file) throws IOException, DocumentException {
        // step 1
        Document document = new Document();
        // step 2
        PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(file));
        // step 3
        document.open();
        // step 4
        XMLWorkerHelper.getInstance().parseXHtml(writer, document,
                new FileInputStream(HTML));
        // step 5
        document.close();
    }

    /**
     * Main method
     */
    public static void main(String[] args) throws IOException, DocumentException {
        File file = new File(DEST);
        file.getParentFile().mkdirs();
        new D02_ParseHtml().createPdf(DEST);
    }
}

【讨论】:

  • 嗨Мат,我仍然遇到同样的错误,我已附上文件供您参考。
【解决方案2】:

终于找到了解决办法。所以我所做的是添加了一个 css 文件,对 html 进行了一些调整,并且能够转换为 PDF 并打印附带的屏幕截图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2020-03-24
    • 1970-01-01
    • 2018-06-03
    • 2013-07-10
    相关资源
    最近更新 更多