PDFBox打印列表,并在需要时添加新页面

时间:2015-08-10 09:41:22

标签: java pdfbox

我目前正在开展一个项目,我需要按照以下格式将ArrayList中的元素打印到PDF文件中:

Layout

上面的布局代表一个 DIN A4 页面,其中包含10个标签,每个标签包含两个元素。

我想浏览包含所有元素的数组列表并将它们打印到标签上。在将20个标签打印到一个页面后,如何强制PDFBox创建新页面?

另一个问题(更有可能在这里寻找想法)是如何获得"跳跃"文本定位工作良好和动态(没有硬编码为这个单个示例布局与20个元素)。我不想告诉PDFBox moveTextPositionByAmount(X,Y) XY。我宁愿让用户输入标签数量和标签尺寸,让我的程序完成剩下的工作。

1 个答案:

答案 0 :(得分:1)

您可以使用以下公式根据字体大小和字体类型(PDFont)获取文本的高度或宽度:

font.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * fontSize * 0.865

在您的情况下,似乎因为您只想在20个标签后跳转到下一页,您可以跟踪您绘制的每个元素,一旦达到20,添加新页面并将计数器重置为0。

希望这会有所帮助。祝好运。