700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Spire pdf 操作pdf 页眉 页脚 水印 二维码

Spire pdf 操作pdf 页眉 页脚 水印 二维码

时间:2021-05-27 20:02:17

相关推荐

Spire pdf 操作pdf 页眉 页脚 水印 二维码

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。