2015-10-20 105 views
1

我正在使用itextsharp生成pdf ...即时通讯问题是我的内容/文本页脚...我想自动分解内容到新页面...如果它出现在页脚上..为什么我的内容与我的页脚重叠?

现在即时通讯使用document.newpage()

,但我想自动做到这一点,我的页面/内容自动分解为新page..it不该来页眉/页的页脚...

为我通过这个类创建页眉/页脚的信息

public class ITextEvents : PdfPageEventHelper 

我用这个功能

public override void OnEndPage 

我M还连接,即时通讯,现在得到的结果...... 请帮助我在此......如果你在留言问我就可以分享更多的信息

enter image description here

我想这最后一个框自动进入新的页面.....

+0

为什么用HTML和CSS标记? – krillgar

回答

1

假设你正在使用document.add()加入流动的内容,你哈以确保您定义足够大的底部边距以容纳页脚。

你不同意你在OnEndPage方法有代码,但假设你有这样的:

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

这吸引了来自x = 36x = 559线在y = 50

假设您已经创建了Document这样的:

Document document = new Document(); 

在这种情况下,要创建一个使用的36个用户单位在A4幅面(595 X 842用户单位)的网页和利润的文档。由于底部边距只有36个用户单位,因此您的内容可能会与底部以50个用户单位绘制的线条重叠。

你应该改变在您创建Document类似的行:

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

现在你有55个用户单位底边距,你在50个用户单位不再重叠划清界线。

注:我用这个词用户单位,因为这就是我们如何在PDF定义测量。默认情况下,1个用户单位等于1个点。默认的边距是36个用户单位或半英寸。

+0

你的建议是好的,但在我的PDF格式有一个封面从左到右覆盖PDF的全部宽度,所以如果我在文档中应用保证金,它会自动添加到封面也......我不想在封面上应用页面....任何其他方法来做到这一点...... –

+0

然后(1)将左边界和右边界定义为0,或者(2)为封页定义不同的页边距。 (不要创建一个不是问题的问题。) –