为什么我的内容与我的页脚重叠?

时间:2015-10-20 16:58:29

标签: c# pdf itextsharp

我正在使用itextsharp生成pdf ...我的问题是我的内容/文字页脚...我想自动将内容分解为新页面...如果它出现在页脚...

现在我正在使用document.newpage()

但我想自动将我的页面/内容自动分解到新页面..它不应该来到页面的页眉/页脚...

我是通过此类创建页眉/页脚的信息

public class ITextEvents : PdfPageEventHelper

我使用了这个功能

public override void OnEndPage

我还附上了我现在得到的结果...... 请帮助我...如果你在评论中提问,我可以分享更多信息

enter image description here

我希望这最后一个框自动进入新页面.....

1 个答案:

答案 0 :(得分:1)

假设您使用document.add()添加流动内容,则必须确保定义足够大的底部边距以容纳页脚。

您不会共享OnEndPage方法中的代码,但假设您有以下内容:

canvas.MoveTo(36, 50);
canvas.LineTo(559, 50);
canvas.Strike();

这会在x = 36处从x = 559y = 50划一条线。

假设您已经像这样创建了Document

Document document = new Document();

在这种情况下,您将创建一个包含A4格式(595 x 842用户单位)页面和36个用户单位边距的文档。由于底部边距仅为36个用户单位,因此您的内容存在与从底部以50个用户单位绘制的线重叠的风险。

您应该更改创建Document的行,如下所示:

Document document = new Document(PageSize.A4, 36, 36, 36, 55);

现在你有一个55个用户单位的下边距,你在50个用户单位绘制的线不再重叠。

注意:我使用术语用户单元,因为这是我们在PDF中定义测量的方式。默认情况下,1个用户单位等于1个点。默认边距为36个用户单位或半英寸。