更多资源查看: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进行处理,非常感谢!