Alors que le monde devient de plus en plus numérique, la nécessité d'une gestion de documents sécurisée et fiable est devenue de plus en plus importante. Une façon de garantir l'authenticité et l'intégrité d'un document est de signer le document avec une signature numérique. Dans cet article, nous explorerons comment signer numériquement des documents PDF en C# et VB.NET.
- Signer numériquement un PDF avec du texte en C# et VB.NET
- Signer numériquement un PDF avec une image en C# et VB.NET
- Signer numériquement un PDF avec du texte et une image en C# et VB.NET
Bibliothèque .NET pour signer numériquement les PDF
Cet article utilise une bibliothèque PDF .NET appelée Spire.PDF for .NET pour signer numériquement des documents PDF. Avant de pouvoir commencer à ajouter des signatures numériques aux documents PDF, nous devons installer Spire.PDF for .NET via NuGet en suivant les étapes ci-dessous :
- Ouvrez Visual Studio et créez un nouveau projet.
- Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et sélectionnez "Manage NuGet Packages".
- Recherchez "Spire.PDF" et installez le package. Une fois le package installé, nous pouvons commencer à ajouter des signatures numériques aux documents PDF.
Signer numériquement un PDF avec du texte en C# et VB.NET
La signature d'un document PDF avec du texte à l'aide de Spire.PDF for .NET est un processus simple. Le code suivant montre comment signer numériquement un document PDF avec du texte en C#:
using Spire.Pdf; using Spire.Pdf.Security; using System; using System.Drawing; using Spire.Pdf.Graphics; namespace AddTextSignature { class Program { static void Main(string[] args) { //Créer un objet PdfDocument PdfDocument doc = new PdfDocument(); //Charger un fichier PDF d'exemple doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf"); //Charger le certificat PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue"); //Créer un objet PdfSignature et spécifier sa position et sa taille PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count-1], cert, "MySignature"); RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 340, 150, 290, 100); signature.Bounds = rectangleF; signature.Certificated = true; //Définir le mode graphique pour signer le détail signature.GraphicsMode = GraphicMode.SignDetail; //Définir le contenu de la signature signature.NameLabel = "Signer:"; signature.Name = "Gary"; signature.ContactInfoLabel = "Phone:"; signature.ContactInfo = "0123456"; signature.DateLabel = "Date:"; signature.Date = DateTime.Now; signature.LocationInfoLabel = "Location:"; signature.LocationInfo = "USA"; signature.ReasonLabel = "Reason:"; signature.Reason = "I am the author"; signature.DistinguishedNameLabel = "DN:"; signature.DistinguishedName = signature.Certificate.IssuerName.Name; //Définir la police de la signature signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS",12f,FontStyle.Regular)); //Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Enregistrer dans un fichier doc.SaveToFile("TextSignature.pdf"); doc.Close(); } } } Le code suivant montre comment signer numériquement un document PDF avec du texte en VB.NET:
Imports Spire.Pdf Imports Spire.Pdf.Security Imports System.Drawing Imports Spire.Pdf.Graphics Namespace AddTextSignature Friend Class Program Private Shared Sub Main(ByVal args As String()) 'Créer un objet PdfDocument Dim doc As PdfDocument = New PdfDocument() 'Charger un fichier PDF d'exemple doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Charger le certificat Dim cert As PdfCertificate = New PdfCertificate("C:\Users\Administrator\Desktop\MyCertificate.pfx", "e-iceblue") 'Créer un objet PdfSignature et spécifier sa position et sa taille Dim signature As PdfSignature = New PdfSignature(doc, doc.Pages(doc.Pages.Count - 1), cert, "MySignature") Dim rectangleF As RectangleF = New RectangleF(doc.Pages(0).ActualSize.Width - 340, 150, 290, 100) signature.Bounds = rectangleF signature.Certificated = True 'Définir le mode graphique pour signer le détail signature.GraphicsMode = GraphicMode.SignDetail 'Définir le contenu de la signature signature.NameLabel = "Signer:" signature.Name = "Gary" signature.ContactInfoLabel = "Phone:" signature.ContactInfo = "0123456" signature.DateLabel = "Date:" signature.[Date] = Date.Now signature.LocationInfoLabel = "Location:" signature.LocationInfo = "USA" signature.ReasonLabel = "Reason:" signature.Reason = "I am the author" signature.DistinguishedNameLabel = "DN:" signature.DistinguishedName = signature.Certificate.IssuerName.Name 'Définir la police de la signature signature.SignDetailsFont = New PdfTrueTypeFont(New Font("Arial Unicode MS", 12F, FontStyle.Regular)) 'Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges Or PdfCertificationFlags.AllowFormFill 'Enregistrer dans un fichier doc.SaveToFile("TextSignature.pdf") doc.Close() End Sub End Class End Namespace Signer numériquement un PDF avec une image en C# et VB.NET
En plus de signer un PDF avec du texte, vous pouvez également signer un PDF avec une image à l'aide de Spire.PDF for .NET.
Le code suivant montre comment signer numériquement un PDF avec une image en C#:
using Spire.Pdf; using Spire.Pdf.Graphics; using Spire.Pdf.Security; using System.Drawing; namespace AddImageSignature { class Program { static void Main(string[] args) { //Créer un objet PdfDocument PdfDocument doc = new PdfDocument(); //Charger un fichier PDF d'exemple doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf"); //Charger le certificat PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue"); //Créer un objet PdfSignature et spécifier sa position et sa taille PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature"); RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 200, 150, 130, 130); signature.Bounds = rectangleF; signature.Certificated = true; //Définir le mode graphique pour signer uniquement l'image signature.GraphicsMode = GraphicMode.SignImageOnly; //Définir la source de l'image de signature signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\verified.png"); //Définir la police de la signature signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular)); //Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Enregistrer dans un fichier doc.SaveToFile("ImageSignature.pdf"); doc.Close(); } } } Le code suivant montre comment signer numériquement un PDF avec une image en VB.NET:
Imports Spire.Pdf Imports Spire.Pdf.Graphics Imports Spire.Pdf.Security Imports System.Drawing Namespace AddImageSignature Friend Class Program Private Shared Sub Main(ByVal args As String()) 'Créer un objet PdfDocument Dim doc As PdfDocument = New PdfDocument() 'Charger un fichier PDF d'exemple doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Charger le certificat Dim cert As PdfCertificate = New PdfCertificate("C:\Users\Administrator\Desktop\MyCertificate.pfx", "e-iceblue") 'Créer un objet PdfSignature et spécifier sa position et sa taille Dim signature As PdfSignature = New PdfSignature(doc, doc.Pages(doc.Pages.Count - 1), cert, "MySignature") Dim rectangleF As RectangleF = New RectangleF(doc.Pages(0).ActualSize.Width - 200, 150, 130, 130) signature.Bounds = rectangleF signature.Certificated = True 'Définir le mode graphique pour signer uniquement l'image signature.GraphicsMode = GraphicMode.SignImageOnly 'Définir la source de l'image de signature signature.SignImageSource = PdfImage.FromFile("C:\Users\Administrator\Desktop\verified.png") 'Définir la police de la signature signature.SignDetailsFont = New PdfTrueTypeFont(New Font("Arial Unicode MS", 12F, FontStyle.Regular)) 'Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges Or PdfCertificationFlags.AllowFormFill 'Enregistrer dans un fichier doc.SaveToFile("ImageSignature.pdf") doc.Close() End Sub End Class End Namespace Signer numériquement un PDF avec du texte et une image en C# et VB.NET
Dans certains cas, vous devrez peut-être signer un PDF avec à la fois du texte et une image.
Le code suivant montre comment signer numériquement un PDF avec du texte et une image en C#:
using Spire.Pdf; using Spire.Pdf.Security; using System; using System.Drawing; using Spire.Pdf.Graphics; namespace AddTextAndImageSignature { class Program { static void Main(string[] args) { //Créer un objet PdfDocument PdfDocument doc = new PdfDocument(); //Charger un fichier PDF d'exemple doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf"); //Charger le certificat PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue"); //Créer un objet PdfSignature et spécifier sa position et sa taille PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature"); RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 320, 150, 260, 110); signature.Bounds = rectangleF; signature.Certificated = true; //Définir le mode graphique pour signer l'image et les détails de la signature signature.GraphicsMode = GraphicMode.SignImageAndSignDetail; //Définir le contenu de la signature signature.NameLabel = "Signer:"; signature.Name = "Gary"; signature.ContactInfoLabel = "Phone:"; signature.ContactInfo = "0123456"; signature.DateLabel = "Date:"; signature.Date = DateTime.Now; signature.LocationInfoLabel = "Location:"; signature.LocationInfo = "USA"; signature.ReasonLabel = "Reason:"; signature.Reason = "I am the author"; signature.DistinguishedNameLabel = "DN:"; signature.DistinguishedName = signature.Certificate.IssuerName.Name; //Définir la source de l'image de signature signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handSignature.png"); //Définir la police de la signature signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular)); //Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill; //Enregistrer dans un fichier doc.SaveToFile("TextAndImageSignature.pdf"); doc.Close(); } } } Le code suivant montre comment signer numériquement un PDF avec du texte et une image en VB.NET:
Imports Spire.Pdf Imports Spire.Pdf.Security Imports System.Drawing Imports Spire.Pdf.Graphics Namespace AddTextAndImageSignature Friend Class Program Private Shared Sub Main(ByVal args As String()) 'Créer un objet PdfDocument Dim doc As PdfDocument = New PdfDocument() 'Charger un fichier PDF d'exemple doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf") 'Charger le certificat Dim cert As PdfCertificate = New PdfCertificate("C:\Users\Administrator\Desktop\MyCertificate.pfx", "e-iceblue") 'Créer un objet PdfSignature et spécifier sa position et sa taille Dim signature As PdfSignature = New PdfSignature(doc, doc.Pages(doc.Pages.Count - 1), cert, "MySignature") Dim rectangleF As RectangleF = New RectangleF(doc.Pages(0).ActualSize.Width - 320, 150, 260, 110) signature.Bounds = rectangleF signature.Certificated = True 'Définir le mode graphique pour signer l'image et les détails de la signature signature.GraphicsMode = GraphicMode.SignImageAndSignDetail 'Définir le contenu de la signature signature.NameLabel = "Signer:" signature.Name = "Gary" signature.ContactInfoLabel = "Phone:" signature.ContactInfo = "0123456" signature.DateLabel = "Date:" signature.[Date] = Date.Now signature.LocationInfoLabel = "Location:" signature.LocationInfo = "USA" signature.ReasonLabel = "Reason:" signature.Reason = "I am the author" signature.DistinguishedNameLabel = "DN:" signature.DistinguishedName = signature.Certificate.IssuerName.Name 'Définir la source de l'image de signature signature.SignImageSource = PdfImage.FromFile("C:\Users\Administrator\Desktop\handSignature.png") 'Définir la police de la signature signature.SignDetailsFont = New PdfTrueTypeFont(New Font("Arial Unicode MS", 12F, FontStyle.Regular)) 'Définir l'autorisation du document pour interdire les modifications mais permettre le remplissage de formulaire signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges Or PdfCertificationFlags.AllowFormFill 'Enregistrer dans un fichier doc.SaveToFile("TextAndImageSignature.pdf") doc.Close() End Sub End Class End Namespace Conclusion
Ajouter une signature numérique à un document PDF est une étape importante pour assurer son authenticité et son intégrité. Avec Spire.PDF for .NET, le processus est simple et direct. En suivant les étapes décrites dans cet article, vous pouvez facilement ajouter des signatures numériques à vos documents PDF en utilisant C# ou VB.NET.
Top comments (0)