当前位置:网站首页>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
- Qtreeview+qabstractitemmodel custom model: the third of a series of tutorials [easy to understand]
- Easyexcel complex data export
- [live broadcast review] the first 8 live broadcasts of battle code Pioneer have come to a perfect end. Please look forward to the next one!
- 黑马程序员-软件测试--06阶段2-linux和数据库-01-08第一章-linux操作系统阶段内容说明,linux命令基本格式以及常见形式的说明,操作系统的常见的分类,查看命令帮助信息方法,
- Go - exe corresponding to related dependency
- GaussDB(DWS)主动预防排查
- MQ learning notes
- leetcode - 287. 寻找重复数
- Tops, the unit of computing power of the processor, can be carried out 1 trillion times per second
猜你喜欢
Training on the device with MIT | 256Kb memory
Classify boost libraries by function
Business visualization - make your flowchart'run'up
固定资产管理子系统报表分为什么大类,包括哪些科目
Mysql——》Innodb存储引擎的索引
多种智能指针
In the past 100 years, only 6 products have been approved, which is the "adjuvant" behind the vaccine competition
Kubernetes创建Service访问Pod
Redis configuration and optimization
Object memory layout
随机推荐
Four methods of JS array splicing [easy to understand]
IDA动态调试apk
LIS (longest ascending subsequence) problem that can be understood [easy to understand]
Introduction and download of the latest version of airserver2022
linux下清理系统缓存并释放内存
Which securities company should we choose to open an account for flush stock? Is it safe to open an account with a mobile phone?
Object memory layout
Slope compensation
Interview question: what is the difference between MySQL's Union all and union, and how many join methods MySQL has (Alibaba interview question) [easy to understand]
MySQL的存储过程
String type conversion BigDecimal, date type
【juc学习之路第9天】屏障衍生工具
【日常训练】326. 3 的幂
I received a letter from CTO inviting me to interview machine learning engineer
【日常训练】66. 加一
完全注解的ssm框架搭建
Make a three digit number of all daffodils "recommended collection"
【MySQL】索引的创建、查看和删除
leetcode - 287. 寻找重复数
Ida dynamic debugging apk