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;

                //图片size
                float 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();

                //绘制二维码图形到PDF
                PdfImage 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