L'ajout de filigranes de texte à vos documents PDF peut être un outil précieux pour améliorer votre image de marque, renforcer la sécurité ou fournir des informations supplémentaires à vos fichiers. Vous pouvez ajouter un filigrane de texte d'une seule ligne ou de plusieurs lignes à votre document PDF. Dans cet article, nous explorerons comment réaliser ces deux tâches une par une en utilisant C# et VB.NET.
Installer la bibliothèque requise
Pour ajouter des filigranes de texte à un document PDF, cet article utilisera Free Spire.PDF for .NET, une bibliothèque facile à utiliser pour créer et manipuler des fichiers PDF dans des applications .NET.
Avant de commencer, vous devrez importer le fichier DLL de la bibliothèque dans votre application en tant que référence. Vous pouvez le faire en installant la bibliothèque via NuGet en suivant ces étapes :
- Ouvrez la Package Manager Console.
- Exécutez cette commande : Install-Package FreeSpire.PDF
Ajouter des filigranes de texte à une ou plusieurs lignes dans un fichier PDF avec C# et VB.NET
Après avoir installé la bibliothèque, vous pouvez l'utiliser pour ajouter des filigranes à des documents PDF facilement dans votre application C# ou VB.NET.
Ajouter un filigrane de texte d'une seule ligne
L'exemple suivant montre comment ajouter un filigrane de texte d'une seule ligne à un fichier PDF en C# :
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddTextWatermarkToPdf
{
class Program
{
static void Main(string[] args)
{
// Créer un objet PdfDocument
PdfDocument pdf = new PdfDocument();
// Charger un document PDF d'exemple
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Créer un objet PdfTrueTypeFont
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);
// Définir le texte du filigrane
string text = "CONFIDENTIEL";
// Mesurer la taille du texte
SizeF textSize = font.MeasureString(text);
// Calculer les valeurs des deux variables de décalage,
// qui seront utilisées pour calculer la quantité de translation du système de coordonnées
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);
// Parcourir toutes les pages du document
foreach (PdfPageBase page in pdf.Pages)
{
// Définir la transparence de la page
page.Canvas.SetTransparency(0.8f);
// Traduire le système de coordonnées par les coordonnées spécifiées
page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);
// Faire pivoter le système de coordonnées de 45 degrés dans le sens antihoraire
page.Canvas.RotateTransform(-45);
// Dessiner le texte du filigrane sur la page
page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}
// Enregistrer les modifications dans un autre fichier
pdf.SaveToFile("TextWatermark.pdf");
}
}
}
L'exemple suivant montre comment ajouter un filigrane de texte d'une seule ligne à un fichier PDF en VB.NET :
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing
Namespace AddTextWatermarkToPdf
Class Program
Shared Sub Main(ByVal args() As String)
' Créer un objet PdfDocument
Dim pdf As PdfDocument = New PdfDocument()
' Charger un document PDF d'exemple
pdf.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")
' Créer un objet PdfTrueTypeFont
Dim font As PdfTrueTypeFont = New PdfTrueTypeFont(New Font("Arial", 50f), True)
' Définir le texte du filigrane
Dim text As String = "CONFIDENTIEL"
' Mesurer la taille du texte
Dim textSize As SizeF = font.MeasureString(text)
' Calculer les valeurs des deux variables de décalage,
' qui seront utilisées pour calculer la quantité de translation du système de coordonnées
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)
' Parcourir toutes les pages du document
For Each page As PdfPageBase In pdf.Pages
' Définir la transparence de la page
page.Canvas.SetTransparency(0.8f)
' Traduire le système de coordonnées par les coordonnées spécifiées
page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2)
' Faire pivoter le système de coordonnées de 45 degrés dans le sens antihoraire
page.Canvas.RotateTransform(-45)
' Dessiner le texte du filigrane sur la page
page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0)
Next
' Enregistrer les modifications dans un autre fichier
pdf.SaveToFile("TextWatermark.pdf")
End Sub
End Class
End Namespace
Ajouter un filigrane de texte à plusieurs lignes
L'exemple suivant montre comment ajouter un filigrane de texte à plusieurs lignes à un fichier PDF en C# :
using System;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddMultiLineTextWatermark
{
class Program
{
static void Main(string[] args)
{
// Créer une instance de PdfDocument
PdfDocument pdf = new PdfDocument();
// Charger un document PDF d'exemple
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Créer un objet PdfTrueTypeFont
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 20f), true);
// Parcourir toutes les pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
// Appeler la méthode InsertMultiLineTextWatermark() pour ajouter des filigranes de texte à la page spécifiée
InsertMultiLineTextWatermark(pdf.Pages[i], "E-ICEBLUE CO LTD", font, 3, 3);
}
// Enregistrer le document dans un autre fichier
pdf.SaveToFile("MultiLineTextWatermark.pdf");
}
// Créer une méthode personnalisée pour insérer des filigranes de texte sur plusieurs lignes dans une page
static void InsertMultiLineTextWatermark(PdfPageBase page, string watermarkText, PdfTrueTypeFont font, int rowNum, int columnNum)
{
// Mesurer la taille du texte
SizeF textSize = font.MeasureString(watermarkText);
// Calculer les valeurs des deux variables de décalage,
// qui seront utilisées pour calculer la quantité de translation du système de coordonnées
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);
// Créer un pinceau de mosaïque
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.ActualSize.Width / columnNum, page.ActualSize.Height / rowNum));
brush.Graphics.SetTransparency(0.3f);
brush.Graphics.Save();
brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2);
brush.Graphics.RotateTransform(-45);
// Dessiner le texte du filigrane sur le pinceau de mosaïque
brush.Graphics.DrawString(watermarkText, font, PdfBrushes.Violet, 0, 0);
brush.Graphics.Restore();
// Dessiner un rectangle (qui recouvre toute la page) en utilisant le pinceau de mosaïque
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.ActualSize));
}
}
}
L'exemple suivant montre comment ajouter un filigrane de texte à plusieurs lignes à un fichier PDF en VB.NET :
using System;
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;
namespace AddMultiLineTextWatermark
{
class Program
{
static void Main(string[] args)
{
// Créer une instance de PdfDocument
PdfDocument pdf = new PdfDocument();
// Charger un document PDF d'exemple
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");
// Créer un objet PdfTrueTypeFont
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 20f), true);
// Parcourir toutes les pages
for (int i = 0; i < pdf.Pages.Count; i++)
{
// Appeler la méthode InsertMultiLineTextWatermark() pour ajouter des filigranes de texte à la page spécifiée
InsertMultiLineTextWatermark(pdf.Pages[i], "E-ICEBLUE CO LTD", font, 3, 3);
}
// Enregistrer le document dans un autre fichier
pdf.SaveToFile("MultiLineTextWatermark.pdf");
}
// Créer une méthode personnalisée pour insérer des filigranes de texte sur plusieurs lignes dans une page
static void InsertMultiLineTextWatermark(PdfPageBase page, string watermarkText, PdfTrueTypeFont font, int rowNum, int columnNum)
{
// Mesurer la taille du texte
SizeF textSize = font.MeasureString(watermarkText);
// Calculer les valeurs des deux variables de décalage,
// qui seront utilisées pour calculer la quantité de translation du système de coordonnées
float offset1 = (float)(textSize.Width * Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * Math.Sqrt(2) / 4);
// Créer un pinceau de mosaïque
PdfTilingBrush brush = new PdfTilingBrush(new SizeF(page.ActualSize.Width / columnNum, page.ActualSize.Height / rowNum));
brush.Graphics.SetTransparency(0.3f);
brush.Graphics.Save();
brush.Graphics.TranslateTransform(brush.Size.Width / 2 - offset1 - offset2, brush.Size.Height / 2 + offset1 - offset2);
brush.Graphics.RotateTransform(-45);
// Dessiner le texte du filigrane sur le pinceau de mosaïque
brush.Graphics.DrawString(watermarkText, font, PdfBrushes.Violet, 0, 0);
brush.Graphics.Restore();
// Dessiner un rectangle (qui recouvre toute la page) en utilisant le pinceau de mosaïque
page.Canvas.DrawRectangle(brush, new RectangleF(new PointF(0, 0), page.ActualSize));
}
}
}
Sujets connexes
- C#/VB.NET : Ajouter des filigranes d'image à un fichier PDF
- C#/VB.NET : Ajouter ou supprimer des pièces jointes dans un fichier PDF
- C#/VB.NET : Créer, remplir ou supprimer des formulaires modifiables dans un fichier PDF
- C#/VB.NET : Ajouter un en-tête à un document PDF existant
- C#/VB.NET : Ajouter un pied de page à un document PDF existant
Top comments (0)