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

时间:2014-12-19 12:23:00

标签: pdf itext

我正在使用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的替代方法?

2 个答案:

答案 0 :(得分:3)

您可以在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();

我希望它适合你。

答案 1 :(得分:0)

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

这个问题进入了"The Best iText Questions on StackOverflow",其中前17页刚刚出版。