当我遇到这个问题时,我正在使用 iText 生成 PDF 报告,并编写了一个简单的示例来说明它。
我正在组合简单的段落和图像。
图像的高度使得 3 个图像适合 PDF 页面,但如果页面上有文本,则仅适合 2 个图像。
我使用以下代码创建 PDF:
Document document = new Document(PageSize.LETTER, 0, 0, 0, 0);
PdfWriter writer = PdfWriter.getInstance(document, fileOutput);
document.open();
document.add(new Paragraph("hello world1"));
addImage(document);
addImage(document);
addImage(document);
document.add(new Paragraph("hello world2"));
document.close();
我希望输出看起来像这样
hello world1
image
image
<page break>
image
hello world2
相反,我得到的是,
Hello world 1
image
image
hello world 2
<page break>
image
我没有使用 iText 设置任何奇怪的换行参数,该示例实际上只是一个简单的示例。
关于为什么它似乎会错误地自动换行有什么想法吗?
在实际情况下,仅仅添加分页符并不是一个可接受的解决方案。
非常感谢。
I'm using iText to generate PDF reports when I came across this issue, and worked up a simple example to illustrate it.
I'm combining simple paragraphs, and images.
The height of the images is such that 3 will fit on a PDF page, but when if text is on a page, only 2 images will fit.
I create my PDF with the following code:
Document document = new Document(PageSize.LETTER, 0, 0, 0, 0);
PdfWriter writer = PdfWriter.getInstance(document, fileOutput);
document.open();
document.add(new Paragraph("hello world1"));
addImage(document);
addImage(document);
addImage(document);
document.add(new Paragraph("hello world2"));
document.close();
I expect the output to look like this
hello world1
image
image
<page break>
image
hello world2
Instead, what I get is,
Hello world 1
image
image
hello world 2
<page break>
image
I'm not setting any sort of odd wrapping parameters using iText, the example really is just a simple one.
Any ideas on why it seems to be auto-wrapping this incorrectly?
In the real case, just adding a page break is not an acceptable solution.
Thanks very much.
发布评论
评论(1)
我自己弄清楚了;)
iText 中的一个设计决定是不将图像切成两半,而是首先添加其他内容。
设置此布尔值会导致 iText 遵守顺序。
Figure it out myself ;)
It was a design decision in iText to not cut images in two, instead it adds other content first.
setting this boolean causes iText to respect the ordering.