我正在使用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的替代方法?
答案 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页刚刚出版。