iTextSharp垂直页面填充

时间:2014-02-19 10:43:09

标签: c# java itextsharp itext

我正试图从iTextSharp中的Latex中找到类似\vfill的东西(一种在页面底部插入空格和放置文本的方法)。它只适用于一页,而不是页脚。

我在网上搜索了iText in Action,但没有找到任何答案。

1 个答案:

答案 0 :(得分:1)

好的,经过很长一段时间并尝试了很多东西,我找到了解决方案。

我试过的一些“有效”的东西,但还不够好:

首先我计算了段落的高度(通过将其写入RAM中新文档的新表中),然后我会添加换行符,直到我的文本有足够的空间。结果:不是一个好方法,文本会偏离几个点(文档中的y位置,因为换行符)。

然后我尝试用ColumnText执行此操作:计算太多(因为我的文档是动态的),我不喜欢将其定位为绝对值。

所以我的解决方案是使用PdfPTable:

            var t = new PdfPTable(1);
            t.ExtendLastRow = true;
            t.WidthPercentage = 100; 

            var c = new PdfPCell();
            c.VerticalAlignment = Element.ALIGN_BOTTOM;
            c.DisableBorderSide(Rectangle.BOX);

            var p = new Paragraph("This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test. This is a test.");
            p.Alignment = Element.ALIGN_JUSTIFIED;

            c.AddElement(p);

            t.AddCell(c);

            doc.Add(t);

很简单,但我在这上面浪费了很多时间。我希望这也有助于其他人。