gpt4 book ai didi

c# - 使用 iTextSharp 生成 pdf 页脚

转载 作者:行者123 更新时间:2023-12-03 09:13:32 24 4
gpt4 key购买 nike

我正在尝试在 PDF 文档的每一页中添加页脚。我想要一个名字和当前日期。我正在使用这段代码,但它只在最后一页打印。我在每一页都需要它。我在这里缺少什么?

DateTime horario = DateTime.MinValue;
document.Add(new iText.Paragraph(document.BottomMargin, "TEST FOOTER" + horario));

最佳答案

我设法解决了这个问题。在我创建 pdf 的类(class)中​​,我添加了这一行。

pdfWriter.PageEvent = new PDFFooter();

我创建了另一个名为 PDFFooter 的类。

 public class PDFFooter : PdfPageEventHelper
{
// write on top of document
public override void OnOpenDocument(PdfWriter writer, Document document)
{
base.OnOpenDocument(writer, document);
PdfPTable tabFot = new PdfPTable(new float[] { 1F });
tabFot.SpacingAfter = 10F;
PdfPCell cell;
tabFot.TotalWidth = 300F;
cell = new PdfPCell(new Phrase(""));
cell.Border = Rectangle.NO_BORDER;
tabFot.AddCell(cell);
tabFot.WriteSelectedRows(0, -1, 150, document.Top, writer.DirectContent);
}

// write on start of each page
public override void OnStartPage(PdfWriter writer, Document document)
{
base.OnStartPage(writer, document);
}

// write on end of each page
public override void OnEndPage(PdfWriter writer, Document document)
{
DateTime horario = DateTime.Now;
base.OnEndPage(writer, document);
PdfPTable tabFot = new PdfPTable(new float[] { 1F });
PdfPCell cell;
tabFot.TotalWidth = 300F;
cell = new PdfPCell(new Phrase("TEST"+" - " + horario));
cell.Border = Rectangle.NO_BORDER;
cell.HorizontalAlignment = Element.ALIGN_CENTER;
tabFot.AddCell(cell);
tabFot.WriteSelectedRows(0, -1, 150, document.Bottom, writer.DirectContent);
}

//write on close of document
public override void OnCloseDocument(PdfWriter writer, Document document)
{
base.OnCloseDocument(writer, document);
}
}
}

关于c# - 使用 iTextSharp 生成 pdf 页脚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39603619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com