[英]itext pdf generation fail on parsing some html tags
我有這個html代碼,它位於db中,我想用pdf解析它。 我正在使用itext生成pdf。 這是db中的html:
<p>no note.</p><br>
<ul><br>
<li><strong>section</strong></li><br>
</ul><br>
<ol><br>
<li>first</li><br>
<li><em>second</em></li><br>
<li><span style="text-decoration: underline;">third</span></li><br>
</ol><br>
這是解析並插入pdf的內容:
<p>no note.</p><br>
<strong>section</strong><br>
first<br>
<em>second</em><br>
<span style="text-decoration: underline;">third</span><br>
這也是我將html解析為pdf的代碼:
org.jsoup.nodes.Document doc = Jsoup.parse(text);
List<Element> objects;
objects = HTMLWorker.parseToList(new StringReader(doc.outerHtml()), null);
for (Element object : objects) {
Element ele = (Element) object;
document.add(ele);
}
可以看到,沒有顯示數字和項目符號(在html中是“ ol”和“ li”標記)。 如何解決呢?
編輯
有關更多說明。 這是我在html中的文字:
這是插入pdf的注釋:
我的朋友剛剛解決了它:
XMLWorkerHelper.getInstance().parseXHtml(new XHtmlElementHandler(document), new StringReader(text));
簡單:)
很久以前不推薦使用HTMLWorker
,其目的不是轉換完整的HTML頁面。 它基本上不知道網頁由<head>
和<body>
部分組成。
XMLWorker
旨在作為解析XML的通用框架。 為了避免這些沖突, iText 7開始使用convertToPdf
函數,該函數能夠將HTML轉換為PDF。
以下將是代碼片段。
HtmlConverter.convertToPdf(new File(src), new File(dest));
將您的HTML編碼添加到第一個參數中,並提供文件位置,以在提供的位置(文件路徑)將HTML保存為PDF。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.