当前位置:网站首页>C#/VB. Net to add text / image watermarks to PDF documents
C#/VB. Net to add text / image watermarks to PDF documents
2022-07-01 22:37:00 【51CTO】
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 . 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 .
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
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");
}
}
}
- 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.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
- 47.
- 48.
- 49.
【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
- 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.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
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");
}
}
}
- 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.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
【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
- 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.
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();
}
}
}
- 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.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
- 40.
- 41.
- 42.
- 43.
- 44.
- 45.
- 46.
【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
- 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.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
design sketch :
边栏推荐
- In the past 100 years, only 6 products have been approved, which is the "adjuvant" behind the vaccine competition
- [noip2013] building block competition [noip2018] road laying greed / difference
- IDA动态调试apk
- Can you get a raise? Analysis on gold content of PMP certificate
- 互联网的智算架构设计
- 【日常训练】66. 加一
- 【日常训练】326. 3 的幂
- 性能测试计划怎么编写
- Do you want to make up for the suspended examination in the first half of the year? Including ten examinations for supervision engineers, architects, etc
- Copy ‘XXXX‘ to effectively final temp variable
猜你喜欢
Ida dynamic debugging apk
Is PMP certificate really useful?
leetcode - 287. 寻找重复数
Basic operation of binary tree
对象内存布局
Mysql——》MyISAM存储引擎的索引
Relationship and difference between enterprise architecture and project management
Recent public ancestor offline practice (tarjan)
Go - exe corresponding to related dependency
In the past 100 years, only 6 products have been approved, which is the "adjuvant" behind the vaccine competition
随机推荐
Is PMP certificate really useful?
详解LockSupport的使用
固定资产管理子系统报表分为什么大类,包括哪些科目
20220701
多种智能指针
性能测试计划怎么编写
【图像分割】2021-SegFormer NeurIPS
Several ways of writing main function in C
Learning notes on futuretask source code of concurrent programming series
[monomer] recommended configuration of streaming information i-bpsv3 server
One of the basic learning of function
Unity uses SQLite
Introduction and download of the latest version of airserver2022
比较版本号[双指针截取自己想要的字串]
Yyds dry goods inventory # solve the real problem of famous enterprises: egg twisting machine
YOLOv5.5 调用本地摄像头
Go - exe corresponding to related dependency
keras训练的H5模型转tflite
100年仅6款产品获批,疫苗竞争背后的“佐剂”江湖
Microsoft, Columbia University | Godel: large scale pre training of goal oriented dialogue