2013-05-21 87 views
1

我想向文檔添加一個包含HTML的段落。
據我所知,iText只支持通過XMLWorkerHelper直接將HTML添加到文檔中。將HTML轉換爲PDF並將其添加到段落

此外我想改變HTML的字體,但這可以用一個css文件來完成。

我的方法是類似這樣的代碼:

XMLWorkerHelper worker = XMLWorkerHelper.getInstance(); 
worker.parseXHtml(pdfWriter, document, fis); 

但是這種解決方案是直接寫入文件。我想將HTML添加到段落中,所以我可以在該段中添加一些其他格式。

+0

可能重複http://stackoverflow.com/questions/235851/using-itext-to-convert-html-to-pdf –

+0

幾乎我需要什麼,但他們只能創建完整的文檔了。我需要的是可以將HTML部分添加到文檔中。我會嘗試創建一個單獨的文檔併合並這兩個文檔。 – MST

回答

1

轉到解析HTML step by step。在那個例子中,最後的管道是PdfWriterPipeline,這不是你想要的(因爲這個管道把東西寫到文檔中)。您想用ElementHandlerPipeline替換這個最終管道,將遇到的所有HTML標記轉換爲ElementList

一旦你有這個Element實例的列表,你可以決定如何處理它(將它們添加到Paragraph是一種選擇)。

1
String html = "<p>Html code here</p>"; 
Paragraph comb = new Paragraph(); 

StringBuilder sb = new StringBuilder(); 
sb.append(html); 

ElementList list = XMLWorkerHelper.parseToElementList(sb.toString(), null); 
for (Element element : list) { 
    comb.add(element); 
} 

para = new Paragraph(comb); 
cell = new PdfPCell(para); 
cell.setHorizontalAlignment(Element.ALIGN_LEFT); 
cell.setBorder(Rectangle.NO_BORDER); 
cell.setPaddingTop(0); 
cell.setPaddingBottom(15f); 
cell.setLeading(3f, 1.2f); 

table.addCell(cell);