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 :