您好我正在尝试使用pdfbox 2.0创建PDF
我需要打印一个像这样的简单贷款摊还表
| 18 | 933.80 | 807.49 | 126.31 | 6,082.49 | 2017-04-12 |
| 19 | 933.80 | 822.29 | 111.51 | 5,260.20 | 2017-05-12 |
| 20 | 933.80 | 837.36 | 96.43 | 4,422.83 | 2017-06-12 |
| 21 | 933.80 | 852.72 | 81.08 | 3,570.11 | 2017-07-12 |
示例代码:
cos.beginText();
cos.setFont(fontPlain, 12);
cos.newLineAtOffset(98, rect.getHeight() - spaceBetweenLines * (++line));
cos.showText("| 24 | 933.80 | 900.48 | 33.32 | 916.99 | 2017-10-12 |");
cos.endText();
cos.beginText();
cos.setFont(fontPlain, 12);
cos.newLineAtOffset(98, rect.getHeight() - spaceBetweenLines * (++line));
cos.showText("| 25 | 933.80 | 916.99 | 16.81 | 0.00 | 2017-11-12 |");
cos.endText();
但随后生成的pdf文件删除了一些空格。
我不知道要修复这些
答案 0 :(得分:2)
这是因为空格字符的宽度与数字不同。正如您从图像中看到的那样,只要列中的位数不同,它就会立即关闭。
您可以使用PDFont.getStringWidth(String text)
(不包括空格)获取字符串的宽度,并使用您正在执行的newLineAtOffset
在一行内移动位置