Liam Anderson
Posted on June 16, 2023
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.
Voir aussi
Posted on June 16, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.