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;
        }

任何建议!! 提前谢谢。

MVC iTextSharp 页眉和页脚 c#

我想我知道你的问题,iTextSharp 中的 HeaderFooter 属性在版本 5+ 中删除了。 这个答案应该可以帮助你上路。 基本上,您需要使用 PageEvents 类来添加页眉和页脚。

创建一个继承自 PdfPageEventHelper 的类并实现其成员。 您只需要 OnStartPage 作为页眉,OnEndPage 作为页脚。 在 PDF 创建过程中,iTextSharp 将为 PDF 中的每个页面触发这些方法中的每一个。

此外,下面是一个更全面的示例(在 C# 中)。