我有一个HTML,并希望将其转换为内存中的PDF,但找不到很好的库将HTML转换为PDF。
我已经尝试使用ITextRenderer
和Jsoup
执行此操作,但是引发了Can't load the XML resource (using TRaX transformer). org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 3; The markup in the document preceding the root element must be well-formed.
异常
这是我的代码
Document document = Jsoup.parse(template, "UTF-8");
document.outputSettings().syntax(Document.OutputSettings.Syntax.html);
ByteArrayOutputStream binaryOutput = new ByteArrayOutputStream();
renderer.setDocumentFromString(document.html());
renderer.layout();
renderer.createPDF(binaryOutput);
3条答案
按热度按时间n1bvdmb61#
您正在寻找一种呈现HTML并将其存储为PDF的方法。在这个问题中,人们试图呈现XML(它接近HTML,而且肯定是XHTML),以便最终将其存储为PDF:Java Render XML Document as PDF
但来到你的错误信息:该错误与您未显示的输入文档有关。根元素之前的文档应该/可能如下所示:
所以
<rootElement/>
之前的所有内容都是您的错误信息所指向的。我猜您正在查看一个HTML文档,它可能包含一些JSoup HTML解析器正在处理的内容。除非您与我们共享该文档,否则您将不得不自己解决这些问题。ffdz8vbo2#
您可以尝试使用此软件包:com.itextpdf.html2pdf.HtmlConverter
有了这个,你要做的就是:
HtmlConverter.convertToPdf(tempFileHtml, tempFilePdf);
并导出它。它没有太多格式错误的xmls/htmls的问题。我使用了它,我对得到的结果很满意:)6uxekuva3#
IronPDF for Java(也适用于.NET)是进行HTML到PDF转换的常用工具。
在
pom.xml
中添加了以下内容(将版本更改为最新版本):我能够渲染像素完美的PDF,看起来和我的HTML完全一样。