C# 如何使用itextsharp识别pdf文件中的页尾
嗨 我正在使用itextsharp生成一个pdf文件。我正在将一个背景图像放在上面,并希望该图像出现在所有页面上。但当第一页完成时,文本会自动移动到下一页,这样图像就不会出现在新页面上 有没有一种方法可以识别页面的结尾,这样我们就可以添加一个新页面,然后先设置图像,使其出现在背景中,然后再添加剩余的文本C# 如何使用itextsharp识别pdf文件中的页尾,c#,pdf,itextsharp,background-image,C#,Pdf,Itextsharp,Background Image,嗨 我正在使用itextsharp生成一个pdf文件。我正在将一个背景图像放在上面,并希望该图像出现在所有页面上。但当第一页完成时,文本会自动移动到下一页,这样图像就不会出现在新页面上 有没有一种方法可以识别页面的结尾,这样我们就可以添加一个新页面,然后先设置图像,使其出现在背景中,然后再添加剩余的文本 我只想在pdf文件的所有页面上都有一个背景图像。只需检查PdfWriter.PageNumber属性,如下所示: using (FileStream fs = File.Crea
我只想在pdf文件的所有页面上都有一个背景图像。只需检查PdfWriter.PageNumber属性,如下所示:
using (FileStream fs = File.Create("test.pdf"))
{
Document document = new Document(PageSize.A4, 72, 72, 72, 72);
PdfWriter writer = PdfWriter.GetInstance(document, fs);
document.Open();
int pageNumber = -1;
for (int i = 0; i < 20; i++)
{
if (pageNumber != writer.PageNumber)
{
// Add image
pageNumber = writer.PageNumber;
}
// Add something else
}
document.Close();
}
使用(FileStream fs=File.Create(“test.pdf”))
{
文档=新文档(PageSize.A4、72、72、72、72);
PdfWriter writer=PdfWriter.GetInstance(文档,fs);
document.Open();
int pageNumber=-1;
对于(int i=0;i<20;i++)
{
if(页码!=writer.pageNumber)
{
//添加图像
pageNumber=writer.pageNumber;
}
//添加其他内容
}
document.Close();
}
我建议您使用页面事件:
myWriter.setPageEvent(new BackgroundPageEvent(backgroundImage));
class BackgroundPageEvent extends PdfPageEventHelper {
Image backgroundImage = null;
public BackgroundPageEvent( Image img ) {
backgroundImage = img;
}
public void onStartPage(PdfWriter writer, Document doc) {
PdfContentByte underContent = writer.getDirectContentUnder();
underContent.addImage(backgroundImage);
}
}
使用上述代码,在创建每个页面时,backgroundImage
将添加到“内容下”。不需要担心什么时候自己添加它。。。iText会帮你解决这个问题,每页的第一个内容就是你的图片。您可能需要使用addImage的各种替代来获得所需的大小
我相信如果当前页面大小在您的程序中发生变化,您也可以查询doc
。如果没有,您应该能够使用绝对位置/比例(这可能是您已经在做的事情)创建传入的图像
PdfPageEvent还有许多其他可以覆盖的事件。PdfPageEventHelper覆盖所有带有“无操作”的基本事件,因此您可以只覆盖所需的事件:
- 开始页
- 一页
- 一次性文件
- 段落
- 段落结束
- 第一章
- 单瓣
- 截面
- 区段端
- OnGenericTag
通用标记实际上非常方便。您可以为文档中的任何内容提供一个通用标记(字符串),您的OnGenericTag覆盖将被用于绘制标记内容的rect调用。各种漂亮的可能性。如果你在“添加其他东西”中添加了一些大的东西,你实际上可以跳过一页。如果下一页出现了一些问题,您可以使用“背景”图像覆盖部分内容(取决于您添加图像的方式),感谢AS-CII提供解决方案。我可以使用您的解决方案在所有pdf页面上设置背景图像。