当前位置:网站首页>C#/VB. Net to add text / image watermarks to PDF documents

C#/VB. Net to add text / image watermarks to PDF documents

2022-07-04 12:53:00 Carina-baby

When we share on the Internet PDF When you file , It is important to convince people on the other side of the screen that the information released is correct . After all , Any file can be intercepted and modified by an attacker . Watermark with your logo or specific text PDF Will prove the authenticity of the documents , And prove its security for everyone who will send it .

We will introduce the application of watermarking in detail in this article PDF Methods . This article will be divided into three parts , I will introduce you in detail how to pass C#/VB.NET Code will text / Image watermark is added to PDF file . Want to realize this function , Just perform a few simple steps . Please read the following for details .

to PDF Add text watermark to the document

towards PDF Add multi line text watermark

to PDF Add image watermark

 

Program environment :

In this test , Introduce... Into the program Spire.PDF.dll file .

 

Method 1:

take Free Spire.PDF for .NET Download to local , decompression , find BIN Under folder Spire.PDF.dll. And then in Visual Studio Open in “ Solution explorer ”, Right click “ quote ”,“ Add reference ”, The local path BIN Under folder dll Add a reference to the program .

 

Method 2:

adopt NuGet install . This can be done by 2 Methods of installation :

 

  1. Can be in Visual Studio Open in “ Solution explorer ”, Right click “ quote ”,“ management NuGet package ”, And then the search “Free Spire.PDF”, Click on “ install ”. Wait for the program installation to complete .

 

  2. Copy the following to PM Console installation .

 

Install-Package FreeSpire.PDF -Version 8.6.0

 

to PDF Add text watermark to the document

Specific steps :

  • establish PdfDocument Object and use PdfDocument.LoadFromFile() Method to load the sample document .
  • use PdfFontBase.MeasureString() Method to set the watermark text and measure the text size .
  • Browse all pages in the document .
  • Use PdfPageBase.Canvas.TraslateTransform() Method to translate the coordinate system of a page to the specified coordinates , Use PdfPageBase.Canvas.RotateTransform() Method rotate the coordinate system counterclockwise 45 degree .
  • Use PdfPageBase.Canvas.DrawString() Method draw watermark text on the page .
  • use PdfDocument.SaveToFile() Method as PDF file .

Complete code :

【C#】

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

namespace AddTextWatermarkToPdf
{
    class Program
    {
        static void Main(string[] args)
        {
            // establish  PdfDocument  object 
            PdfDocument pdf = new PdfDocument();

            // load PDF file  
            pdf.LoadFromFile("Sample.pdf");

            // establish PdfTrueTypeFont object 
            PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);

            // Set watermark text 
            string text = "CONFIDENTIAL";

            // Measure text size 
            SizeF textSize = font.MeasureString(text);

            // Calculate the value of two offset variables , Used to calculate the translation of the coordinate system 
            float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
            float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);

            // Browse all pages in the document .
            foreach (PdfPageBase page in pdf.Pages)
            {
                // Set page transparency 
                page.Canvas.SetTransparency(0.8f);

                // Translate the coordinate system by specifying coordinates                 page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);

                // Rotate the coordinate system counterclockwise  45  degree 
                page.Canvas.RotateTransform(-45);

                // Draw watermark text on the page 
                page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
            }

            // Save the changes as a new file 
            pdf.SaveToFile("TextWatermark.pdf");
        }
    }
}

【VB.NET】

Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing

Namespace AddTextWatermarkToPdf
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            ' establish  PdfDocument  object 
            Dim pdf As PdfDocument = New PdfDocument
            ' load PDF file 
            pdf.LoadFromFile("Sample.pdf")
            ' establish PdfTrueTypeFont  object 
            Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial", 50!), true)
            ' Set watermark text 
            Dim text As String = "CONFIDENTIAL"
            ' Measure text size 
            Dim textSize As SizeF = font.MeasureString(text)
            ' Calculate the value of two offset variables , Used to calculate the translation of the coordinate system 
            Dim offset1 As Single = CType((textSize.Width  _
                        * (System.Math.Sqrt(2) / 4)),Single)
            Dim offset2 As Single = CType((textSize.Height  _
                        * (System.Math.Sqrt(2) / 4)),Single)
            ' Browse all pages in the document .
            For Each page As PdfPageBase In pdf.Pages
                ' Set page transparency 
                page.Canvas.SetTransparency(0.8!)
                ' Translate the coordinate system by specifying coordinates   
                page.Canvas.TranslateTransform(((page.Canvas.Size.Width / 2)  _
                                - (offset1 - offset2)), ((page.Canvas.Size.Height / 2)  _
                                + (offset1 - offset2)))
                ' Rotate the coordinate system counterclockwise  45  degree 
                page.Canvas.RotateTransform(-45)
                ' Draw watermark text on the page 
                page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0)
            Next
            ' Save the changes as a new file 
            pdf.SaveToFile("TextWatermark.pdf")
        End Sub
    End Class
End Namespace

design sketch :

towards PDF Add multi line text watermark

Specific steps :

  • establish PDF Document combination PdfDocument. LoadFromFile() Method to load the file .
  • Get the first page .
  • Draw text watermark . Use PdfCanvas.TranslateTransform() Method to set the text size . Use PdfCanvas.RotateTransform() Method to set the font angle . And use PdfCanvas.DrawString() Method to draw the text content you want .
  • Use PdfDocument.SaveToFile() Method to save the document to a new PDF file .

Complete code :

【C#】

using System.Drawing;
using Spire.Pdf;
using Spire.Pdf.Graphics;


namespace TextWaterMark
{
    class Program
    {
        static void Main(string[] args)
        {
            // establish PDF Document and load the file 
            PdfDocument doc = new PdfDocument();
            doc.LoadFromFile("Sample1.pdf");

            // Get the first page 
            PdfPageBase page = doc.Pages[0];

            // Draw text watermark 
            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("internal use",
                new PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Violet, 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));

            // Save as PDF file 
            doc.SaveToFile("TextWaterMark1.pdf");
          
        }
    }
}

VB.NET

Imports System.Drawing
Imports Spire.Pdf
Imports Spire.Pdf.Graphics

Namespace TextWaterMark
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            ' establish PDF Document and load the file 
            Dim doc As PdfDocument = New PdfDocument
            doc.LoadFromFile("Sample1.pdf")
            ' Get the first page 
            Dim page As PdfPageBase = doc.Pages(0)
            ' Draw text watermark 
            Dim brush As PdfTilingBrush = New PdfTilingBrush(New SizeF((page.Canvas.ClientSize.Width / 2), (page.Canvas.ClientSize.Height / 3)))
            brush.Graphics.SetTransparency(0.3!)
            brush.Graphics.Save
            brush.Graphics.TranslateTransform((brush.Size.Width / 2), (brush.Size.Height / 2))
            brush.Graphics.RotateTransform(-45)
            brush.Graphics.DrawString("internal use", New PdfFont(PdfFontFamily.Helvetica, 24), PdfBrushes.Violet, 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))
            ' Save as PDF file 
            doc.SaveToFile("TextWaterMark1.pdf")
        End Sub
    End Class
End Namespace

design sketch :

to PDF Add image watermark

Specific steps :

  • Create a PdfDocument Object and use PdfDocument .LoadFromFile() Method to load an example PDF file .
  • Use Image.FromFile() Method to load the image .
  • Get the picture size .
  • Cycle through the pages in the document , adopt PdfDocument.Pages() Property to get the specific page .
  • adopt PdfPageBase.BackgroundImage Property to set the image as the watermark image of the current page .
  • adopt PdfPageBase.BackgroundRegion Property to set the image position and size .
  • Use PdfDocument.SaveToFile() Method to save the document to a file .

Complete code

【C#】

using Spire.Pdf;
using System.Drawing;

namespace AddImageWatermark
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument  object 
            PdfDocument document = new PdfDocument();

            // Load an example PDF  file 
            document.LoadFromFile("sample.pdf");

            // Load image 
            Image image = Image.FromFile("logo.png");

            // Get the picture size 
            int imgWidth = image.Width;
            int imgHeight = image.Height;

            // Browse the pages in the document            
 for (int i = 0; i < document.Pages.Count; i++)
            {
                // Get page width and height 
                float pageWidth = document.Pages[i].ActualSize.Width;
                float pageHeight = document.Pages[i].ActualSize.Height;

                // Set background opacity 
                document.Pages[i].BackgroudOpacity = 0.3f;

                // Set the image as the watermark image of the current page 
                document.Pages[i].BackgroundImage = image;

                // Place the background image in the center of the page 
                Rectangle rect = new Rectangle((int)(pageWidth - imgWidth) / 2, (int)(pageHeight - imgHeight) / 2, imgWidth, imgHeight);
                document.Pages[i].BackgroundRegion = rect;
            }

            // Save the document as PDF file 
            document.SaveToFile("AddImageWatermark.pdf");
            document.Close();
        }
    }
}

【VB.NET】

Imports Spire.Pdf
Imports System.Drawing

Namespace AddImageWatermark
    
    Class Program
        
        Private Shared Sub Main(ByVal args() As String)
            ' Create a PdfDocument  object 
            Dim document As PdfDocument = New PdfDocument
            ' Load an example PDF  file 
            document.LoadFromFile("sample.pdf")
            ' Load image 
            Dim image As Image = Image.FromFile("logo.png")
            ' Get the picture size 
            Dim imgWidth As Integer = image.Width
            Dim imgHeight As Integer = image.Height
            ' Browse the pages in the document   
            Dim i As Integer = 0
            Do While (i < document.Pages.Count)
                ' Get page width and height 
                Dim pageWidth As Single = document.Pages(i).ActualSize.Width
                Dim pageHeight As Single = document.Pages(i).ActualSize.Height
                ' Set background opacity 
                document.Pages(i).BackgroudOpacity = 0.3!
                ' Set the image as the watermark image of the current page 
                document.Pages(i).BackgroundImage = image
                ' Place the background image in the center of the page 
                Dim rect As Rectangle = New Rectangle((CType((pageWidth - imgWidth),Integer) / 2), (CType((pageHeight - imgHeight),Integer) / 2), imgWidth, imgHeight)
                document.Pages(i).BackgroundRegion = rect
                i = (i + 1)
            Loop
            
            ' Save the document as PDF file 
            document.SaveToFile("AddImageWatermark.pdf")
            document.Close
        End Sub
    End Class
End Namespace

design sketch :

 

原网站

版权声明
本文为[Carina-baby]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/185/202207041015370697.html