我目前正在开展一个项目,我需要按照以下格式将ArrayList
中的元素打印到PDF文件中:
上面的布局代表一个 DIN A4 页面,其中包含10个标签,每个标签包含两个元素。
我想浏览包含所有元素的数组列表并将它们打印到标签上。在将20个标签打印到一个页面后,如何强制PDFBox创建新页面?
另一个问题(更有可能在这里寻找想法)是如何获得"跳跃"文本定位工作良好和动态(没有硬编码为这个单个示例布局与20个元素)。我不想告诉PDFBox moveTextPositionByAmount(X,Y)
X
和Y
。我宁愿让用户输入标签数量和标签尺寸,让我的程序完成剩下的工作。
答案 0 :(得分:1)
您可以使用以下公式根据字体大小和字体类型(PDFont)获取文本的高度或宽度:
font.getFontDescriptor().getFontBoundingBox().getHeight() / 1000 * fontSize * 0.865
在您的情况下,似乎因为您只想在20个标签后跳转到下一页,您可以跟踪您绘制的每个元素,一旦达到20,添加新页面并将计数器重置为0。
希望这会有所帮助。祝好运。