2011-08-09 21 views
4

Javaの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(); 
関連する問題