itext 2.1.7 版本的 pdf 是否支持 XMLWorker 将 html 转换为 pdf



我正在使用iText lowagie 2.1.7版本从HTML文件生成PDF。我使用了 xmlworker:5.5.3,但不支持 lowagie 2.1.7 版本。显示的错误消息是

方法无签名:com.itextpdf.tool.xml.XMLWorkerHelper.parseXHtml(( 适用于参数类型:(com.lowagie.text.pdf.PdfWriter, com.lowagie.text.Document, java.io.InputStreamReader( 值: [com.lowagie.text.pdf.PdfWriter@331801, com.lowagie.text.Document@1a6ce9c1, ...]可能的解决方案:

parseXHtml(com.itextpdf.tool.xml.ElementHandler, java.io.InputStream(, parseXHtml(com.itextpdf.tool.xml.ElementHandler, java.io.Reader(, parseXHtml(com.itextpdf.text.pdf.PdfWriter, com.itextpdf.text.Document, java.io.InputStream(, parseXHtml(com.itextpdf.text.pdf.PdfWriter, com.itextpdf.text.Document, java.io.Reader(

对此的解决方案可能是什么。或者使用iText 2.1.7版本将HTML转换为PDF?

您可以在 iText 2.1.7 中使用 HTMLWorker 作为替代方法:

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.html.simpleparser.HTMLWorker;
import com.lowagie.text.PageSize;
...
Document document = new Document();
OutputStream file = new FileOutputStream("path/to/generatedfile.pdf");
PdfWriter writer = PdfWriter.getInstance(document, file);
document.open();
HTMLWorker htmlWorker = new HTMLWorker(document);
htmlWorker.parse(new StringReader("<html>...</html>"));
document.close();

我希望它对你有用。

XML Worker 5.5.4(及更早版本(仅适用于相应的 iText 版本。没有办法在iText 2.1.7中使用XML Worker ,也没有办法做到这一点。为 iText 2.1.7 创建一个 XML Worker 附加组件并不是一项好的投资,因为 iText 2.1.7 不应再用于业务。这在回答这个问题时进行了解释:https://stackoverflow.com/questions/25696851/can-itext-2-1-7-or-earlier-can-be-used-commercially

这个问题被写进了《StackOverflow上最好的iText问题》一书中,其中前17页是在不久前出版的。

最新更新