MVC iTextSharp 页眉和页脚 c#
本文关键字:iTextSharp MVC | 更新日期: 2023-09-27 18:30:27
我正在使用MVC2,页眉和页脚在iTextSharp 4.1.6中运行良好,但在5.2中则不然。 这是我的代码:
public FileStreamResult GridPDF()
{
MemoryStream workStream = new MemoryStream();
//the document
Document document = new Document();
PdfWriter.GetInstance(document, workStream);//fs);
document.Open();
iTextSharp.text.Font font5 = iTextSharp.text.FontFactory.GetFont("Arial", 10);
iTextSharp.text.Font font6 = iTextSharp.text.FontFactory.GetFont("Arial", 18);
//HeaderFooter header = new HeaderFooter(new Phrase(BPheader, FontFactory.GetFont("Arial", 8, Font.BOLD)), false);
//header.Border = Rectangle.BOTTOM_BORDER;
////header.GrayFill=(Color.GRAY);
//document.Header = header;
//HeaderFooter footer = new HeaderFooter(new Phrase("Page: ", FontFactory.GetFont("Arial", 8, Font.ITALIC)), true);
//footer.Border = Rectangle.TOP_BORDER;
//document.Footer = footer;
PdfPTable tableh = new PdfPTable(1);
PdfPCell cellh = new PdfPCell(new Phrase("", FontFactory.GetFont("Arial", 10)));
cellh.Colspan = 1;
tableh.HorizontalAlignment = 0;
tableh.WidthPercentage = 100;
cellh.BorderWidth = 3;
cellh.Padding = 0;
Image image = Image.GetInstance(Server.MapPath("~/Content/images/logo_small.png"));
// image.Alignment = 6; // iTextSharp.text.Image.ALIGN_RIGHT;
image.ScalePercent(40f); // change it's size
image.SetAbsolutePosition(500, 750);
document.Add(image);
Paragraph p = new Paragraph("Certificate", font6);
p.Alignment = 1;
document.Add(p);
tableh.DefaultCell.Border = Rectangle.TOP_BORDER;
tableh.DefaultCell.Border = Rectangle.BOTTOM_BORDER;
tableh.AddCell(cellh);
//close the document
document.Close();
//prepare output stream
byte[] byteInfo = workStream.ToArray();
SendPdfToBrowser(byteInfo);
r
eturn null;
}
任何建议!! 提前谢谢。
我想我知道你的问题,iTextSharp 中的 HeaderFooter 属性在版本 5+ 中删除了。 这个答案应该可以帮助你上路。 基本上,您需要使用 PageEvents 类来添加页眉和页脚。
创建一个继承自 PdfPageEventHelper 的类并实现其成员。 您只需要 OnStartPage 作为页眉,OnEndPage 作为页脚。 在 PDF 创建过程中,iTextSharp 将为 PDF 中的每个页面触发这些方法中的每一个。
此外,下面是一个更全面的示例(在 C# 中)。