iTextSharp 导出PDF,添加页眉页脚

问题:为导出PDF设置页眉页脚,页眉带图标与文字。

话不多说,直接上代码:

1、Page事件触发,实例化CreatHeaderAndFoot类。

  public static void Export()
        {
            string fileExportPath= Filepath+"//"+ DateTime.Now.ToString("yyyy_MM_dd") + ".pdf";
            Document document = new Document(PageSize.A4, 80, 80, 70, 30);
            PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(fileExportPath, FileMode.Create));
            document.Open();
            writer.PageEvent = new CreatHeaderAndFoot();
            document.NewPage();
            Paragraph date = new Paragraph(10, DateTime.Now.ToString("yyyy_MM_dd"), new Font(BF_Light, 13));
            date.Alignment = Rectangle.ALIGN_RIGHT;
            document.Add(date);

            AddBody(document, bitmap);

            document.Close();
            writer.Close();
        }

2、添加页眉页脚。

  public class CreatHeaderAndFoot : PdfPageEventHelper, IPdfPageEvent
    {
        private static BaseFont BsFont = BaseFont.CreateFont(@"C:\Windows\Fonts\simsun.ttc,0", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);//PDF中文使用,0代表宋体
        public override void OnEndPage(PdfWriter writer, Document document)
        {
            base.OnEndPage(writer, document);

            #region 一

            string path = "../../Images/LOGO.jpg";//图片路径
            Image img = Image.GetInstance(path);
            //页眉
            img.SetAbsolutePosition(80, 780); //图片位置
            BaseColor bs = new BaseColor(237, 125, 49);
            LineSeparator line = new LineSeparator(2f, -300, bs, Element.ALIGN_RIGHT, 30f);//下划线
            PdfContentByte cbh = writer.DirectContent;
            cbh.AddImage(img);
            Phrase header = new Phrase(new Chunk(line));
            ColumnText.ShowTextAligned(cbh, Element.ALIGN_RIGHT, header,
                document.Right, document.Top, 0);

            //页脚
            Font fontfooter = new Font(BsFont, 10);
            PdfContentByte cbs = writer.DirectContent;
            cbs.SetCharacterSpacing(1.3f); //设置文字显示时的字间距
            Phrase footer = new Phrase(writer.PageNumber.ToString(), fontfooter);
            ColumnText.ShowTextAligned(cbs, Element.ALIGN_CENTER, footer,
                document.Right / 2, document.Bottom, 0);


            #endregion

          

        }
    }

3、截图如下:

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值