我正在創建一個由幾個PdfPTables組成的PDF,其中一些PdfCell由簡單的短語組成,其他需要解析HTML片段。爲了確保解析的HTML添加了所需的樣式並在正確的位置,我一直將它存儲在段落中,然後將其添加到PdfPCell中。但是,這樣做會導致我在處理一些HTML標記(如列表和引號)時遇到問題。下面是我正在做的一個粗略的例子,我能做些什麼來正確處理HTML列表,引號等?解析HTML代碼片段並添加到PdfPTable
例如:iText正確處理HTML列表並知道將其轉換爲iText List/ListItem。我需要將該List添加到我的PdfTable中。我想想,把列表元素的段落抵消了適當的樣式(整個列表結束是在一行上沒有編號),並想知道處理這
PdfPTable table = new PdfPTable(1);
table.addCell(parseHtmlToParagraph(htmlString));
table.addCell(new Phrase("Name" + user.getName()));
public Paragraph parseHtmlToParagraph(String str) throws IOException {
StringReader body = new StringReader(str);
final Paragraph para = new Paragraph();
XMLWorkerHelper.getInstance().parseXHtml(new ElementHandler() {
@Override
public void add(Writable w) {
if (w instanceof WritableElement) {
List<Element> elements = ((WritableElement) w).elements();
for (Element e : elements) {
para.add(e);
}
}
}
}, body);
return para;
}
的正確方法
XMLWorkerHelper實際上是解析HTML還是隻解析XML?因爲HTML不是有效的XML,除非它是XHTML。 – Falmarri 2014-11-04 21:33:44