NetCore给World或Pdf添加水印

NetCore给World或Pdf添加水印

Posted by ZXZ on May 18, 2022

NetCore给World或Pdf添加水印

框架:net Core 3.1

包:

World:FreeSpire.Doc 7.11.0

PDF:Spire.PDF 8.1.0

image-20220518162324852

因为两个包的命名空间都是 Spire 无法通知引用所以建了两个项目

给PDF文件添加文字水印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
		/// <summary>
        /// 给PDF文件添加文字水印
        /// </summary>
        /// <param name="pdfPath">目标文件路径</param>
        /// <param name="targetPath">保存路径</param>
        /// <param name="marks">文字水印内容</param>
        /// <returns></returns>
        public static void FontWaterMarkToFile()
        {
            Spire.Pdf.PdfDocument pdf1 = new PdfDocument();
            pdf1.LoadFromFile(@"D:\广联达BIM课件新版.pdf");

            for (int i = 0; i < pdf1.Pages.Count; i++)
            {
                PdfPageBase page = pdf1.Pages[0];
                page = pdf1.Pages[i];
                PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.Canvas.ClientSize.Width / 2, 											page.Canvas.ClientSize.Height / 3));
                brush.Graphics.SetTransparency(0.3f);
                brush.Graphics.Save();
                brush.Graphics.TranslateTransform(brush.Size.Width / 2, brush.Size.Height / 2);
                brush.Graphics.RotateTransform(-45);
                brush.Graphics.DrawString(i.ToString(), new Spire.Pdf.Graphics.PdfFont(PdfFontFamily.Helvetica, 24), 							PdfBrushes.Blue, 0, 0, new PdfStringFormat(PdfTextAlignment.Center));
                brush.Graphics.Restore();
                brush.Graphics.SetTransparency(1);
                page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.Canvas.ClientSize));
            }

            //保存文档
            pdf1.SaveToFile(@"D:\Output.pdf");
           
        }

给World文件添加文字水印

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
		/// <summary>
        /// 给World文件添加文字水印
        /// </summary>
        public static void FontWaterMark()
        {           
            Spire.Doc.Document doc1 = new Spire.Doc.Document();
            doc1.LoadFromFile(@"D:\面试题.docx");


            //设置文本水印
            TextWatermark txtWatermark = new TextWatermark();
            txtWatermark.Text = "Microsoft";
            txtWatermark.FontSize = 90;
            txtWatermark.Layout = WatermarkLayout.Diagonal;
            doc1.Watermark = txtWatermark;

            doc1.SaveToFile("水印.docx");

        }