1. 程式人生 > 其它 >C#使用Spire.Pdf新增水印

C#使用Spire.Pdf新增水印

最近接到的工作

1.word轉PDF

2.PDF新增水印,並控制顯示的頁數

3.JPG轉PDF

需要引入Spire.Pdf Spire.License和System.Drawing

接下來上程式碼

  /// <summary>
        /// 給PDF檔案新增水印
        /// </summary>
        /// <param name="pdfPath">需要新增水印的pdf檔案路徑</param>
        /// <param name="targetPath">新增成功之後的檔案路徑和檔名</param>
        ///
<param name="marks">水印內容</param> /// <param name="fromPage">可以從第幾頁開始看</param> /// <param name="toPage">可以看多少頁</param> /// <returns></returns> public static bool PDFAddMark(string pdfPath, string targetPath, string marks, int fromPage = 1
, int toPage = 1) { bool result = false; try { //建立一個新的PDF例項。然後匯入PDF檔案。 Spire.Pdf.PdfDocument pdf = new Spire.Pdf.PdfDocument(); pdf.LoadFromFile(pdfPath); //這裡是因為Spire的版本問題 第一頁會被新增水印 PdfPageBase pb = pdf.Pages.Add(); //
新增一頁 pdf.Pages.Remove(pb); //去除第一頁水印 var a = pdf.Pages.Count; if (fromPage > a) { fromPage = 1; } if (fromPage > 1 && toPage < a) { for (int i = 0; i < (a - toPage); i++) { pdf.Pages.Remove(pdf.Pages[pdf.Pages.Count - 1]); //去掉後面的頁數 } for (int i = 1; i < fromPage; i++) { pdf.Pages.Remove(pdf.Pages[0]); //去掉前面的頁數 } } else if (fromPage > 1) { for (int i = 1; i < fromPage; i++) { pdf.Pages.Remove(pdf.Pages[0]); //去掉前面的頁數 } } else if (toPage < a) { for (int i = 0; i < (a - toPage); i++) { pdf.Pages.Remove(pdf.Pages[pdf.Pages.Count - 1]); //去掉後面的頁數 } } PdfPageBase page = null; if (pdf.Pages.Count > 0) { for (int i = 0; i < pdf.Pages.Count; i++) { page = pdf.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(marks, 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)); } pdf.SaveToFile(targetPath); return true; } return result; } catch (Exception ex) { return false; } }