pdfbox不尊重空白区域

时间:2015-11-12 21:54:14

标签: whitespace pdfbox

您好我正在尝试使用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文件删除了一些空格。

Loan PDF IMAGE

我不知道要修复这些

1 个答案:

答案 0 :(得分:2)

这是因为空格字符的宽度与数字不同。正如您从图像中看到的那样,只要列中的位数不同,它就会立即关闭。

您可以使用PDFont.getStringWidth(String text)(不包括空格)获取字符串的宽度,并使用您正在执行的newLineAtOffset在一行内移动位置