我使用ITextRenderer生成HTML从一个PDF,我需要做的是收银机收据。 该收据动态宽,当然,动态内容。 这就是说,内容的高度将永远是不同的,现在我在努力寻找调整PDF页面的高度,以内容的方式。 如果它太大了收据到底长的白色部分,如果是做空PDF得到的分页,我需要它是在只有一个页面。
我使用@page {size: Wpx Hpx;}
设置页面大小,但它几乎是不可能的(会很痛苦)来计算基于宽度和数据内容的高度。
这是生成PDF的代码:
ITextRenderer renderer = new ITextRenderer();
byte[] bytes = htmlDocumentString.toString().getBytes("UTF-8");
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
InputSource is = new InputSource(bais);
Document doc = builder.parse(is);
renderer.setDocument(doc, null);
renderer.layout();
renderer.createPDF(outputStream);
outputStream.flush();
outputStream.close();
我也试过renderer.getSharedContext().setPrint(false);
,但这将引发NPE。
此外@page {-fs-page-sequence: "none";}
没有任何的运气。