2011-08-09 119 views
4

我使用HTML中的HTMLWorker解析一些html代碼,然後使用iText將其插入到PDF中。我通過調用new Document(PageSize.A4, 40, 40, 40, 40);來創建文檔,它應該在所有邊上指定頁邊距40px,但是當我插入包含比頁面寬的表格的解析的html代碼時,右邊距不工作並且表格達到頁面的右邊界...所有邊距均可以,除了右邊一個..任何建議?使用iText的PDF中的HTML表格

相關代碼:

Document document = new Document(PageSize.A4, 40, 40, 40, 40); 

HashMap<String, Object> map = new HashMap<String, Object>(); 
map.put(HTMLWorker.FONT_PROVIDER, new MyFontFactory10()); 

HTMLWorker worker = new HTMLWorker(document); 
worker.setProviders(map); 

worker.parse(new StringReader(VARIABLE_CONTAINING_HTML_CODE)); 

回答

1

它應該工作。 您能否提供有關iText版本以及HTML代碼外觀的信息。 圖像可以使表擴展超出邊距(順便說一下,它不是像素)。

試試這個代碼,看看問題是否仍然存在。該表不應超出頁邊距。與HTMLWorker一起使用的表格總是獲得其容器的100%的寬度。

Document document = new Document(PageSize.A4, 40, 40, 40, 40);   
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:/TEST.pdf")); 
document.open(); 
HTMLWorker worker = new HTMLWorker(document); 
String code = "<table border=1><tr><td>Test</td><td>Test</td></tr></table>"; 
worker.parse(new StringReader(code)); 
document.close();