我正在使用Java中的HTMLWorker解析一些HTML代码,然后使用iText将其插入PDF。我通过调用new Document(PageSize.A4, 40, 40, 40, 40);
来创建文档,它应该在所有方面指定边距40px,但是当我插入包含比页面更宽的表格的解析的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));
答案 0 :(得分: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();