PDF管理控件Spire.PDF使用教程:如何向现有PDF文件添加页眉页脚

更多资源查看:Spire.XLS工作表教程 | Spire.Doc系列教程 | Spire.PDF系列教程

C# PDF 添加页眉页脚

在Spire.Pdf命名空间下有一个PdfPageTemplateElement类,用于创建页眉页脚,水印和印章模板。在该模板上创建好页眉页脚等信息后,即可应用到PDF文档,使现有的页面出现相应信息。

static void Main(string[] args){    //创建PDF文档    PdfDocument doc = new PdfDocument();    //指定页面大小    doc.PageSettings.Size = PdfPageSize.A4;    //将页边距设置为0     doc.PageSettings.Margins = new PdfMargins(0);    //创建PdfMargins对象,指定期望设置的页边距     PdfMargins margins = new PdfMargins(40, 60, 40, 60);    //在文档模板的顶部和底部应用页眉页脚模板     doc.Template.Top = CreateHeaderTemplate(doc, margins);    doc.Template.Bottom = CreateFooterTemplate(doc, margins);    //在文档模板的左右部分应用空白模板     doc.Template.Left = new PdfPageTemplateElement(margins.Left, doc.PageSettings.Size.Height);    doc.Template.Right = new PdfPageTemplateElement(margins.Right, doc.PageSettings.Size.Height);    //在文档中添加两页并写入文字    PdfPageBase page1 = doc.Pages.Add();    PdfPageBase page2 = doc.Pages.Add();    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("华文楷体", 15f, FontStyle.Bold), true);    page1.Canvas.DrawString("正文开始的地方...", font, PdfBrushes.Black, 0, 0);    page2.Canvas.DrawString("正文开始的地方...", font, PdfBrushes.Black, 0, 0);    //保存文档    doc.SaveToFile("HeaderAndFooter.pdf");}//创建页眉模板static PdfPageTemplateElement CreateHeaderTemplate(PdfDocument doc, PdfMargins margins){    //获取页面大小    SizeF pageSize = doc.PageSettings.Size;    //创建PdfPageTemplateElement对象headerSpace,即作页眉模板    PdfPageTemplateElement headerSpace = new PdfPageTemplateElement(pageSize.Width, margins.Top);    headerSpace.Foreground = false;    //声明x,y两个float型变量    float x = margins.Left;    float y = 0;    //在headerSpace中绘制图片    PdfImage headerImage = PdfImage.FromFile(@"C:logo.png");    float width = headerImage.Width / 3;    float height = headerImage.Height / 3;    headerSpace.Graphics.DrawImage(headerImage, x, margins.Top - height - 2, width, height);    //在headerSpace中绘制线段    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);    headerSpace.Graphics.DrawLine(pen, x, y + margins.Top - 2, pageSize.Width - x, y + margins.Top - 2);    //返回headerSpace    return headerSpace;}// 创建页脚模板static PdfPageTemplateElement CreateFooterTemplate(PdfDocument doc, PdfMargins margins){    //获取页面大小    SizeF pageSize = doc.PageSettings.Size;    //创建PdfPageTemplateElement对象footerSpace,即页脚模板    PdfPageTemplateElement footerSpace = new PdfPageTemplateElement(pageSize.Width, margins.Bottom);    footerSpace.Foreground = false;    //声明x,y两个float型变量    float x = margins.Left;    float y = 0;    //在footerSpace中绘制线段    PdfPen pen = new PdfPen(PdfBrushes.Gray, 0.5f);    footerSpace.Graphics.DrawLine(pen, x, y, pageSize.Width - x, y);    //在footerSpace中绘制文字    y = y + 5;    PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("黑体", 10f, FontStyle.Bold), true);    PdfStringFormat format = new PdfStringFormat(PdfTextAlignment.Left);    String footerText = "成都冰蓝科技有限公司n电话:028-81705109n 址:http://www.e-iceblue.cn";    footerSpace.Graphics.DrawString(footerText, font, PdfBrushes.Black, x, y, format);    //在footerSpace中绘制当前页码和总页码    PdfPageNumberField number = new PdfPageNumberField();    PdfPageCountField count = new PdfPageCountField();    PdfCompositeField compositeField = new PdfCompositeField(font, PdfBrushes.Black, "第{0}页/共{1}页", number, count);      compositeField.StringFormat = new PdfStringFormat(PdfTextAlignment.Right, PdfVerticalAlignment.Top);    SizeF size = font.MeasureString(compositeField.Text);    compositeField.Bounds = new RectangleF(pageSize.Width - x - size.Width, y, size.Width, size.Height);    compositeField.Draw(footerSpace.Graphics);    //返回footerSpace    return footerSpace;}

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年6月27日
下一篇 2019年6月27日

相关推荐

发表回复

登录后才能评论