我正在使用ITextRenderer从HTML生成PDF,我需要生成一个收银机小票。这个小票的宽度是动态的,内容也是动态的。因此,内容的高度总是不同的,目前我正在努力寻找一种调整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";}
没有任何效果。