1.创建页眉页脚

SizeF pageSize = pdf.Pages[0].Size == null ? PdfPageSize.A4 : pdf.Pages[0].Size;//画笔PdfPen pen = new PdfPen(pdf.StyleConfig.PenColor, pdf.StyleConfig.PenWidth);//文字样式和位置 字体和对齐方式PdfTrueTypeFont font = new PdfTrueTypeFont(new Font(pdf.StyleConfig.HeaderFont, pdf.StyleConfig.HeaderEmSize));for (int i = 0; i < pdf.Pages.Count; i++){//偏移变量float x = pdf.PdfMargins.Left;float y = 0;//图片sizefloat width = 0;float height = 0;//绘制图片if (!string.IsNullOrEmpty(imageUrl)){PdfImage headerImage = PdfImage.FromFile(imageUrl);width = headerImage.Width / 4;height = headerImage.Height / 4;y = pdf.PdfMargins.Top;pdf.Pages[i].Canvas.DrawImage(headerImage, x, y, width, height);}//绘制线段float x1 = pdf.PdfMargins.Left + width + 30;float x2 = pageSize.Width - pdf.PdfMargins.Right;float y1 = pdf.PdfMargins.Top + height;pdf.Pages[i].Canvas.DrawLine(pen, x1, y1, x2, y1);if (!string.IsNullOrEmpty(text)){// 绘入文字SizeF size = font.MeasureString(text);x = pageSize.Width - pdf.PdfMargins.Right - size.Width;y = height - size.Height + (pdf.PdfMargins.Top / 3 * 2);pdf.Pages[i].Canvas.DrawString(text, font, PdfBrushes.Black, x, y);}}}

  2.创建页脚

if (!string.IsNullOrEmpty(footerText)){//获取页面大小SizeF pageSize = pdf.Pages[0].Size == null ? PdfPageSize.A4 : pdf.Pages[0].Size;//偏移量float x = 0;float y = 0;//画笔PdfPen pen = new PdfPen(pdf.StyleConfig.PenColor, pdf.StyleConfig.PenWidth);//文字样式和位置PdfTrueTypeFont font = new PdfTrueTypeFont(new Font(pdf.StyleConfig.FooterFont, pdf.StyleConfig.FooterEmSize), true);for (int i = 0; i < pdf.Pages.Count; i++){//绘制文字SizeF size = font.MeasureString(footerText);x = (pageSize.Width - size.Width) / 2;y = pageSize.Height - pdf.PdfMargins.Bottom - size.Height - 2;pdf.Pages[i].Canvas.DrawString(footerText, font, PdfBrushes.Black, x, y);}}

  3.创建水印

if (!string.IsNullOrEmpty(text)){//创建True Type字体PdfTrueTypeFont font = new PdfTrueTypeFont(new Font(Pdf.StyleConfig.WaterMarkFont, Pdf.StyleConfig.WaterMarkEmSize), true);//测量文字所占的位置大小SizeF size = font.MeasureString(text);//计算偏移量float x = (float)(size.Width * System.Math.Sqrt(2) / 4);float y = (float)(size.Height * System.Math.Sqrt(2) / 4);//遍历文档页foreach (PdfPageBase page in Pdf.Pages){//设置透明度page.Canvas.SetTransparency(Pdf.StyleConfig.Transparency);//将坐标系向右,向下平移page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - x - y, page.Canvas.Size.Height / 2 + x - y);//将坐标系逆时针旋转45度page.Canvas.RotateTransform(Pdf.StyleConfig.Angle);//绘制文本page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);}}

  4.二维码

 if (!string.IsNullOrEmpty(data)){SizeF pageSize = pdf.Pages[0].Size == null ? PdfPageSize.A4 : pdf.Pages[0].Size;//创建BarcodeSettings对象BarcodeSettings.ApplyKey("keyNumber");BarcodeSettings settings = new BarcodeSettings();//设置条码类型为二维码settings.Type = BarCodeType.QRCode;//设置二维码数据settings.Data = data;settings.ShowText = false;//设置数据类型settings.QRCodeDataMode = QRCodeDataMode.Auto;//设置宽度settings.X = 0.7f;BarCodeGenerator generator = new BarCodeGenerator(settings);Image image = generator.GenerateImage();//绘制二维码图形到PDFPdfImage pdfImage = PdfImage.FromImage(image);float x = pageSize.Width - pdf.PdfMargins.Right - pdfImage.PhysicalDimension.Width;float y = 5;if (!string.IsNullOrEmpty(imageUrl)){PdfImage headerImage = PdfImage.FromFile(imageUrl);y += headerImage.Height / 4;}y += pdf.PdfMargins.Top;pdf.Pages[0].Canvas.DrawImage(pdfImage, x, y);}

  

转载于:https://www.cnblogs.com/xxh-2014/p/11208951.html

Spire pdf 操作pdf,页眉 页脚 水印 二维码相关推荐

  1. ADB用命令来操作手机相册中的照片识别二维码

  2. java给word和pdf文档添加二维码

    背景 目前收到一个需求,需要给上传的word和pdf文档添加二维码,防止职工给领导签字时伪造合同,所以提出这个需求,上传的word和pdf添加二维码,然后使用我们的app扫码查看相关的信息. 解决方案 ...

  3. Excel竟然可以批量解锁二维码内容的操作

    今天小编要分享的操作是,Excel可以批量解锁二维码内容的操作,如下图所示,某销售公司为了保密销量信息呢,将其中的销量信息生成二维码,希望能通过扫码来获得对应的销量.那现在呢,为了统一做汇报工作,需要 ...

  4. C# 添加PDF页眉/页脚

    这篇文章主要介绍了C# 添加PDF页眉/页脚的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧 概述 页眉页脚是一篇完整.精致的文档的重要组成部分.在页眉页脚处,可 ...

  5. Java 处理PDF文档(一):页眉页脚、水印、背景、附件

    前言 本文将介绍通过Java编程来处理PDF文档的一些方法,因为一篇文档的处理可能包括很多内容,比如文档安全性设置(水印.加密/解密).文本/图片/图形操作.注释.附件.域.文档转换(其他文件格式转为 ...

  6. PDF页眉页脚怎么设置

    页眉和页脚:通常显示文档的附加信息,常用来插入时间.日期.页码.单位名称.微标等.其中,页眉在页面的顶部,页脚在页面的底部.相信在Word里面添加页眉页脚大家都知道该怎么做的,那么现在我们经常使用的另 ...

  7. pdf页眉页脚设置步骤

    当我们在使用一份pdf文件的时候,想要给pdf文件添加上页眉与页脚我们应该怎么去操作呢?如果小伙伴们想要知道答案的话,继续往下面阅读就可以知道答案了哦. 操作软件:迅捷PDF编辑器(PDF编辑器下载) ...

  8. PDF页眉页脚删除用什么方法

    PDF页眉页脚删除用什么方法.相信每一个小伙伴都在网络上下载过PDF文件,当我们打开PDF文件后,发现文件里有着我们不需要的页眉与页脚,我们应该如何将其删除掉呢?如果屏幕前的你不清楚的话,那就和小编一 ...

  9. 如何给PDF文件添加页眉页脚,一分钟轻松搞定

    如何给PDF文件添加页眉页脚?很多在使用PDF文件的人都会有这样的问题,不知道如何给PDF文件添加页眉页脚,想要给PDF文件添加页眉页脚需要使用到PDF编辑器,下面就使用迅捷PDF编辑器为大家操作一下 ...

最新文章

  1. Microbiome: 再论扩增子功能预测分析(Picrust)的效果
  2. EasyUI--datebox设置默认时间
  3. python 输出“Hello, world”
  4. python3编码命名规范_Python代码规范和命名规范
  5. pytorch | transpose、permute、view、contiguous、is_contiguous、reshape
  6. 手写自己的MyBatis框架-1.0 的不足
  7. python新式类和经典类的区别?
  8. linux和windows下忘记mysql密码的几种找回方法
  9. 什么是陀螺仪的dr算法_PID控制器调参工具——DR-PID Tuning(Matlab GUI)
  10. 使用emacs作为mysql的客户端
  11. 【01 赖世雄英语语法:单句的语法(句子的构成)】
  12. 计算机表格 求差,Excel表格中求差函数公式怎么用
  13. 【Java】【MySnake】仿贪吃蛇小游戏开源代码(持续更新)
  14. python实现超级玛丽小游戏(动图演示+源码分享)
  15. 支付 VS 清算 VS 结算
  16. S3DIS数据集学习笔记
  17. VS软件评估期已过不能使用的解决方法
  18. 【转】ATF中SMC深入理解
  19. Optisystem7.0安装教程(Win10系统)
  20. 浙江省省市县边界经纬坐标数据

热门文章

  1. 深圳求职指南(2004版)
  2. android水电工具softonic,Softonic
  3. python考试名词解释_程序设计(python)_章节测验,期末考试,慕课答案查询公众号...
  4. 项目开发过程中遇到的问题和解决方法
  5. ad10捕捉pad中点_【中考专题】中点模型(通关篇)—三种方法,助你通关!
  6. 58同城智能推荐系统的演进与实践(转)
  7. c语言——数字特征值题
  8. 网线 绿灯长亮 黄灯不亮
  9. 【SpringCloud-学习笔记】Docker基本操作
  10. 燕十八 Mysql 笔记 68 课