COMPARAISON DES PRODUITS

Comparaison entre IronPDF et Apitron PDF Kit

Publié décembre 11, 2022
Partager:

En C#, travailler avec des fichiers PDF peut être un défi pour les développeurs. De nombreux facteurs doivent être pris en compte lors de la création du contenu de ces fichiers, et plus encore lors de la conversion du contenu de différents formats en PDF. L'automatisation est désormais la clé des processus de développement de logiciels. Ces problèmes ont été résolus grâce à la construction de bibliothèques conçues pour aider à lire, écrire, créer et modifier des documents PDF, ainsi qu'à éditer leurs attributs et à les convertir à partir d'autres formats.

Deux bibliothèques PDF seront comparées pour .NET et .NET Core dans ce billet de blog. Ces deux bibliothèques sont :

  • La bibliothèque IronPDF
  • Le kit PDF Apitron

    IronPDF et Apitron PDF Kit sont deux bibliothèques qui fournissent des fonctions de manipulation de PDF pour .NET et .NET Core. Ils peuvent tous deux être utilisés pour des tâches de conversion et de manipulation de champs de documents. Tous deux peuvent également créer des signets. La question suivante est de savoir quelle bibliothèque C# PDF .NET est la plus adaptée à nos projets .NET. Cet article comparatif vous aidera à choisir entre ces deux bibliothèques PDF.

    Voyons d'abord ce que les deux bibliothèques ont à offrir, puis passons à la comparaison proprement dite.

La bibliothèque du kit PDF Apitron et ses caractéristiques

Apitron PDF Kit est un composant .NET qui vous permet de manipuler ou de convertir des fichiers PDF de la manière que vous souhaitez. Vous pouvez ajouter des images, des dessins et des textes, signer des documents, et bien plus encore. Vous pouvez également modifier le contenu existant. Le composant Apitron PDF Kit .NET peut être utilisé pour créer des applications mobiles, de bureau, web, Windows et Cloud sur plusieurs plateformes.

En utilisant ce SDK PDF, vous serez en mesure de :

  • Extraire, modifier et ajouter des graphiques(texte, images, dessins)
  • Diviser ou fusionner des documents PDF
  • Remplir ou créer des formulaires PDF protégés par mot de passe, support FDF
  • Créer des documents PDF multicouches avec des groupes de contenu optionnels( BCG)
  • Ajouter ou supprimer des champs du document
  • Utiliser du texte de droite à gauche ou bidirectionnel pour créer le contenu de la page
  • Examiner les ressources d'un document - polices définies, fichiers intégrés
  • Signature numérique et vérification des signatures existantes sur les documents PDF

Les principales caractéristiques d'IronPDF

Les développeurs, en particulier les programmeurs C#, adoreront la bibliothèque IronPDF .NET. Avec cet outil étonnant, vous pouvez construire une application de traitement de PDF .NET Core facilement.

IronPDF utilise le moteur Chromium de .NET pour modifier les pages HTML(en code ou sous forme d'URL) vers des fichiers PDF. Il n'est absolument pas nécessaire d'utiliser des API complexes pour positionner des objets de navigation ou pour concevoir des PDF à partir de HTML. Les documents web standard sont pris en charge par IronPDF, y compris HTML, ASPX, JS, CSS et les images.

IronPDF peut être créé à l'aide de HTML5, CSS, JS et d'images. Un PDF peut être facilement modifié, tamponné et complété par des en-têtes et des pieds de page. Il facilite également la lecture des textes PDF et l'extraction des graphiques.

Les principales caractéristiques d'IronPDF sont les suivantes :

  • Création de documents PDF à l'aide de HTML4/5, CSS et JavaScript
  • Chargement d'URL avec des identifiants de connexion à un réseau personnalisé, des agents utilisateurs, des proxies, des cookies, des en-têtes HTTP et des variables de formulaire(activation de la connexion derrière les formulaires de connexion HTML)
  • Lecture et remplissage des champs d'un formulaire PDF
  • Extraction de texte et de graphiques à partir de PDF
  • Mise à jour des pages PDF avec du nouveau contenu HTML
  • Création d'en-têtes et de pieds de page textuels ou HTML
  • Fusion et séparation du contenu des documents PDF
  • Conversion des formulaires web ASP.NET en PDF imprimables
  • Impression de fichiers PDF sans le logiciel Adobe Acrobat

    IronPDF est disponible dans presque tous les systèmes d'exploitation et frameworks compatibles avec C#, notamment les suivants :

  • .NET Core 2.1, 3.0, 3.1, .NET 6 & 5
  • conformité au Standard .NET 2.0 pour une compatibilité universelle
  • Azure, AWS, Docker, Linux, Windows

    Le reste de l'article se lit comme suit :

  1. Installation d'IronPDF

  2. Installation du kit PDF Apitron

  3. Créer un document PDF

  4. Créer un en-tête et un pied de page dans un PDF

  5. Signer numériquement un PDF

  6. Prix et licences

  7. Conclusion

1. Installation d'IronPDF

Il existe quatre méthodes pour télécharger et installer la bibliothèque IronPDF. Il s'agit des éléments suivants :

  1. Utilisation du gestionnaire de paquets NuGet

  2. L'invite de commande du développeur

  3. Télécharger directement le paquet NuGet

  4. Télécharger la bibliothèque .DLL d'IronPDF

1.1. Utilisation du gestionnaire de paquets NuGet

Pour installer IronPDF, il suffit de cliquer avec le bouton droit de la souris sur votre projet dans l'explorateur de solutions. Cela ouvrira le gestionnaire de paquets NuGet.

Une comparaison entre IronPDF et Apitron PDF SDK .NET - Figure 1 : Accès au gestionnaire de packages NuGet à l'aide de l'explorateur de solutions

Accès au gestionnaire de paquets NuGet à l'aide de l'explorateur de solutions

Une fois sélectionné, recherchez le paquet IronPDF et installez-le, comme le montre la capture d'écran ci-dessous.

Une comparaison d'IronPDF avec Apitron PDF SDK .NET - Figure 2 : Installation de la bibliothèque IronPDF à l'aide du gestionnaire de packages NuGet

Installation de la bibliothèque IronPDF à l'aide du gestionnaire de paquets NuGet

1.2. Utilisation de l'invite de commande du développeur

Vous pouvez également installer IronPDF par l'intermédiaire de l'Invite de commande du développeur.

  • Ouvrez l'invite de commande Developer --- qui se trouve généralement dans le dossier Visual Studio
  • Tapez la commande suivante :
Install-Package IronPdf
  • Appuyer sur Entrée
  • Cette opération permet de télécharger et d'installer le paquet
  • Rechargez votre projet et commencez à l'utiliser

1.3. Télécharger directement le paquet NuGet

IronPDF peut également être installé en visitant le site web de l'entreprisePaquet NuGet IronPDF vous pouvez consulter directement le site et télécharger le paquet. Les étapes sont les suivantes :

  • Naviguez jusqu'àPaquet NuGet IronPDF
  • Sélectionnez Télécharger le paquet
  • Double-cliquez sur le paquet téléchargé
  • Le paquet sera installé
  • Rechargez votre projet Visual Studio et commencez à l'utiliser

    IronPDF est téléchargé et prêt à l'emploi. Cependant, avant cela, nous devons installer la bibliothèque Apitron PDF.

2. Installation du kit PDF Apitron

Pour les applications .NET Core, nous pouvons installer Apitron à l'aide du gestionnaire de paquets NuGet, ou nous pouvons télécharger et installer Apitron à partir du site web de l'entrepriseApitron PDF Kit NuGet vous pouvez consulter le site web directement.

  • Ouvrez les paquets NuGet dans Visual Studio comme nous l'avons fait pour IronPDF.
  • Rechercher Apitron.PDF.Kit.
  • Cliquez sur installer dans votre projet actuel.
    Une comparaison d'IronPDF avec Apitron PDF SDK .NET - Figure 3 : Recherche dans Apitron PDF Kit

    Recherche du kit PDF Apitron

    Vous pouvez également utiliser la console NuGet Package Manager pour installer Apitron. Suivez l'étape "Utiliser l'invite de commande du développeur" comme indiqué dans IronPDF et tapez la commande suivante :

Install-Package Apitron.PDF.Kit

Appuyez sur ENTER. Il téléchargera et installera Apitron.PDF.Kit.

Ajouter les espaces de noms suivants :

using Apitron.PDF.Kit;
using Apitron.PDF.Kit.FixedLayout.Resources;
using Apitron.PDF.Kit.FixedLayout.Resources.Fonts;
using Apitron.PDF.Kit.FlowLayout.Content;
using Apitron.PDF.Kit.Styles;
using Apitron.PDF.Kit.Styles.Appearance;
using Font = Apitron.PDF.Kit.Styles.Text.Font;
using Apitron.PDF.Kit;
using Apitron.PDF.Kit.FixedLayout.Resources;
using Apitron.PDF.Kit.FixedLayout.Resources.Fonts;
using Apitron.PDF.Kit.FlowLayout.Content;
using Apitron.PDF.Kit.Styles;
using Apitron.PDF.Kit.Styles.Appearance;
using Font = Apitron.PDF.Kit.Styles.Text.Font;
Imports Apitron.PDF.Kit
Imports Apitron.PDF.Kit.FixedLayout.Resources
Imports Apitron.PDF.Kit.FixedLayout.Resources.Fonts
Imports Apitron.PDF.Kit.FlowLayout.Content
Imports Apitron.PDF.Kit.Styles
Imports Apitron.PDF.Kit.Styles.Appearance
Imports Font = Apitron.PDF.Kit.Styles.Text.Font
VB   C#

Passons maintenant à la comparaison entre IronPDF et Apitron PDF.

3. Création d'un document PDF

3.1. Utilisation d'IronPDF

IronPDF dispose de plusieurs méthodes pour créer des PDF. Examinons deux d'entre elles.

URL existant en PDF

IronPDF permet de convertir facilement n'importe quelle URL en PDF. Le code suivant permet de convertir une URL en PDF.

IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
IronPdf.ChromePdfRenderer Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/");
Pdf.SaveAs("url.pdf");
Dim Renderer As New IronPdf.ChromePdfRenderer()
Dim Pdf = Renderer.RenderUrlAsPdf("https://ironpdf.com/")
Pdf.SaveAs("url.pdf")
VB   C#

Chaîne d'entrée HTML vers PDF

Le code ci-dessous explique comment rendre un document PDF à partir d'une chaîne HTML. Vous pouvez utiliser uniquement du HTML ou le combiner avec du CSS, des images et du JavaScript.

var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>Sample Text</h1>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new IronPdf.ChromePdfRenderer();
using var PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>");
PDF.SaveAs("pixel-perfect.pdf");

// Load external HTML assets: images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>Sample Text</h1>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim PDF = Renderer.RenderHtmlAsPdf("<h1>Html with CSS and Images</h1>")
PDF.SaveAs("pixel-perfect.pdf")

' Load external HTML assets: images, CSS and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>Sample Text</h1>", "C:\site\assets\")
AdvancedPDF.SaveAs("html-with-assets.pdf")
VB   C#

Le résultat est le suivant :

Une comparaison d'IronPDF avec Apitron PDF SDK .NET - Figure 4 : IronPDF Générer un PDF à partir d'une URL et d'une chaîne HTML CSS

IronPDF génère des PDF à partir d'une URL et d'une chaîne CSS HTML

3.2. Utilisation du kit PDF Apitron

Apitron PDF ne permet pas de convertir une URL ou un HTML en PDF. Il permet de convertir les PDF en HTML. Cependant, il convertit également les fichiers XML en PDF. Le fichier XML utilisé est le suivant :

<?xml version="1.0" encoding="utf-8"?>
<FlowDocument xmlns="Apitron.PDF.Kit.FlowLayout.v1">
  <Resources>
    <Image resourceId="logo" fileName="../../images/logo.png" />
  </Resources>
  <Styles>
    <Style selector="flowdocument">
      <Color value="Black" />
    </Style>
    <Style selector="grid">
      <InnerBorder thickness="1" />
      <InnerBorderColor value="Black" />
    </Style>
  </Styles>
  <Elements>
    <Image>
      <Properties>
        <Class value="logo" />
        <ResourceId value="logo" />
      </Properties>
    </Image>
    <TextBlock>
      <Properties>
        <Class value="header" />
        <Text value="Sample Interview Questions for Candidates" />
      </Properties>
    </TextBlock>
    <Br />
    <TextBlock>
      <Properties>
        <Class value="headerNote" />
        <Text value="To help facilitate the interview process, the Human Resources Department has compiled a list of questions that might be used during the phone and/or on-campus interviews. Some of the questions deal with the same content, but are phrased differently while other questions may not pertain to a specific discipline; however all of the questions are unbiased and appropriate to ask. We hope you'll find this helpful." />
      </Properties>
    </TextBlock>
  </Elements>
  <Properties>
    <Margin value="30,20,30,20" />
  </Properties>
</FlowDocument>
XML

Le code pour convertir ce modèle XML en PDF est le suivant :

using (Stream stream = File.OpenRead("C:\\PLACE YOUR EXACT PATH HERE\\template.xml"), outputStream = File.Create("fromTemplate.pdf"))
{
    ResourceManager resourceManager = new ResourceManager();

    FlowDocument doc = FlowDocument.LoadFromXml(stream, resourceManager);

    doc.Write(outputStream, resourceManager);
}
using (Stream stream = File.OpenRead("C:\\PLACE YOUR EXACT PATH HERE\\template.xml"), outputStream = File.Create("fromTemplate.pdf"))
{
    ResourceManager resourceManager = new ResourceManager();

    FlowDocument doc = FlowDocument.LoadFromXml(stream, resourceManager);

    doc.Write(outputStream, resourceManager);
}
Using stream As Stream = File.OpenRead("C:\PLACE YOUR EXACT PATH HERE\template.xml"), outputStream As Stream = File.Create("fromTemplate.pdf")
	Dim resourceManager As New ResourceManager()

	Dim doc As FlowDocument = FlowDocument.LoadFromXml(stream, resourceManager)

	doc.Write(outputStream, resourceManager)
End Using
VB   C#

Le résultat est le suivant :

Comparaison entre IronPDF et Apitron PDF SDK .NET - Figure 5 : Apitron PDF Document

Apitron PDF Document

Si nous comparons les résultats d'IronPDF et d'Apitron, nous pouvons clairement voir qu'IronPDF crée des documents étonnants en utilisant le rendu HTML et sans même redimensionner la taille de l'image. D'autre part, Apitron produit un résultat similaire à celui d'IronPDF, mais uniquement si le fichier XML contient des styles enregistrés.

4. Ajout d'en-têtes et de pieds de page aux documents PDF

4.1. Utilisation d'IronPDF

L'ajout d'en-têtes et de pieds de page est assez facile avec IronPDF. IronPDF vous permet d'ajouter des numéros de page et des sauts de page, de joindre une page de couverture, des marges, etc.

Le code permettant d'ajouter des en-têtes et des pieds de page se trouve ci-dessous :

var Renderer = new ChromePdfRenderer();

// Add a header
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page  will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "This is the header text";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Renderer.RenderingOptions.MarginTop = 25; //create 25mm space for header

// Add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
Renderer.RenderingOptions.TextFooter.FontSize = 12;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
Renderer.RenderingOptions.MarginTop = 25; //create 25mm space for footer

using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>This is header and footer generated pdf file</h1>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
var Renderer = new ChromePdfRenderer();

// Add a header
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page  will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "This is the header text";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;
Renderer.RenderingOptions.MarginTop = 25; //create 25mm space for header

// Add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = true;
Renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial;
Renderer.RenderingOptions.TextFooter.FontSize = 12;
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}";
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}";
Renderer.RenderingOptions.MarginTop = 25; //create 25mm space for footer

using var AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>This is header and footer generated pdf file</h1>", @"C:\site\assets\");
AdvancedPDF.SaveAs("html-with-assets.pdf");
Dim Renderer = New ChromePdfRenderer()

' Add a header
Renderer.RenderingOptions.FirstPageNumber = 1 ' use 2 if a cover page  will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = True
Renderer.RenderingOptions.TextHeader.CenterText = "This is the header text"
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica
Renderer.RenderingOptions.TextHeader.FontSize = 12
Renderer.RenderingOptions.MarginTop = 25 'create 25mm space for header

' Add a footer too
Renderer.RenderingOptions.TextFooter.DrawDividerLine = True
Renderer.RenderingOptions.TextFooter.Font = IronPdf.Font.FontTypes.Arial
Renderer.RenderingOptions.TextFooter.FontSize = 12
Renderer.RenderingOptions.TextFooter.LeftText = "{date} {time}"
Renderer.RenderingOptions.TextFooter.RightText = "{page} of {total-pages}"
Renderer.RenderingOptions.MarginTop = 25 'create 25mm space for footer

Dim AdvancedPDF = Renderer.RenderHtmlAsPdf("<img src='logo.png'><h1>This is header and footer generated pdf file</h1>", "C:\site\assets\")
AdvancedPDF.SaveAs("html-with-assets.pdf")
VB   C#

Le résultat est le suivant :

Une comparaison d'IronPDF avec Apitron PDF SDK .NET - Figure 6 : En-tête et pied de page IronPDF

En-tête et pied de page IronPDF

4.2. Utilisation du kit PDF Apitron

Apitron PDF Kit crée des PDF en convertissant le contenu d'un format de structure XML en PDF. Dans Apitron PDF Fit, les en-têtes et les pieds de page peuvent être ajoutés en utilisant les propriétés PageHeader et PageFooter. Le code pour ce faire est le suivant :

// register doc's resources first
ResourceManager resourceManager = new ResourceManager();
resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("logo","../../data/logo.png"));

// create document
FlowDocument doc = new FlowDocument(){Margin = new Thickness(10)};

// register styles
doc.StyleManager.RegisterStyle(".pageHeader",new Style(){Font = new Font(StandardFonts.TimesBold, 20)});
doc.StyleManager.RegisterStyle(".pageFooter",new Style(){Align = Align.Right});
doc.StyleManager.RegisterStyle("hr",new Style(){Height = 2, Margin = new Thickness(0,5,0,5)});
doc.StyleManager.RegisterStyle(".content",new Style(){Align = Align.Left, Display = Display.InlineBlock});

// fill the header section
doc.PageHeader.Class = "pageHeader";
doc.PageHeader.Add(new Image("logo"){Width = 100, Height = 50});
doc.PageHeader.Add(new TextBlock("This document is intended for internal use only"){TextIndent = 20});
doc.PageHeader.Add(new Hr());

// fill the footer section
doc.PageFooter.Class = "pageFooter";
doc.PageFooter.Add(new Hr());
doc.PageFooter.Add(new TextBlock((ctx)=>string.Format("Page {0} from&nbsp;",ctx.CurrentPage+1)));
doc.PageFooter.Add(new PageCount(3){Display = Display.Inline});

// add pages
for (int i = 0; i < 2; ++i)
{
    doc.Add(new TextBlock("This is header and footer generation pdf file.") {Class = "content"});
    doc.Add(new PageBreak());
}

// generate PDF
using (Stream stream = File.Create("out.pdf"))
{
    doc.Write(stream, resourceManager);
}

Process.Start("out.pdf");
// register doc's resources first
ResourceManager resourceManager = new ResourceManager();
resourceManager.RegisterResource(new Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("logo","../../data/logo.png"));

// create document
FlowDocument doc = new FlowDocument(){Margin = new Thickness(10)};

// register styles
doc.StyleManager.RegisterStyle(".pageHeader",new Style(){Font = new Font(StandardFonts.TimesBold, 20)});
doc.StyleManager.RegisterStyle(".pageFooter",new Style(){Align = Align.Right});
doc.StyleManager.RegisterStyle("hr",new Style(){Height = 2, Margin = new Thickness(0,5,0,5)});
doc.StyleManager.RegisterStyle(".content",new Style(){Align = Align.Left, Display = Display.InlineBlock});

// fill the header section
doc.PageHeader.Class = "pageHeader";
doc.PageHeader.Add(new Image("logo"){Width = 100, Height = 50});
doc.PageHeader.Add(new TextBlock("This document is intended for internal use only"){TextIndent = 20});
doc.PageHeader.Add(new Hr());

// fill the footer section
doc.PageFooter.Class = "pageFooter";
doc.PageFooter.Add(new Hr());
doc.PageFooter.Add(new TextBlock((ctx)=>string.Format("Page {0} from&nbsp;",ctx.CurrentPage+1)));
doc.PageFooter.Add(new PageCount(3){Display = Display.Inline});

// add pages
for (int i = 0; i < 2; ++i)
{
    doc.Add(new TextBlock("This is header and footer generation pdf file.") {Class = "content"});
    doc.Add(new PageBreak());
}

// generate PDF
using (Stream stream = File.Create("out.pdf"))
{
    doc.Write(stream, resourceManager);
}

Process.Start("out.pdf");
' register doc's resources first
Dim resourceManager As New ResourceManager()
resourceManager.RegisterResource(New Apitron.PDF.Kit.FixedLayout.Resources.XObjects.Image("logo","../../data/logo.png"))

' create document
Dim doc As New FlowDocument() With {.Margin = New Thickness(10)}

' register styles
doc.StyleManager.RegisterStyle(".pageHeader",New Style() With {.Font = New Font(StandardFonts.TimesBold, 20)})
doc.StyleManager.RegisterStyle(".pageFooter",New Style() With {.Align = Align.Right})
doc.StyleManager.RegisterStyle("hr",New Style() With {
	.Height = 2,
	.Margin = New Thickness(0,5,0,5)
})
doc.StyleManager.RegisterStyle(".content",New Style() With {
	.Align = Align.Left,
	.Display = Display.InlineBlock
})

' fill the header section
doc.PageHeader.Class = "pageHeader"
doc.PageHeader.Add(New Image("logo") With {
	.Width = 100,
	.Height = 50
})
doc.PageHeader.Add(New TextBlock("This document is intended for internal use only") With {.TextIndent = 20})
doc.PageHeader.Add(New Hr())

' fill the footer section
doc.PageFooter.Class = "pageFooter"
doc.PageFooter.Add(New Hr())
doc.PageFooter.Add(New TextBlock(Function(ctx) String.Format("Page {0} from&nbsp;",ctx.CurrentPage+1)))
doc.PageFooter.Add(New PageCount(3) With {.Display = Display.Inline})

' add pages
For i As Integer = 0 To 1
	doc.Add(New TextBlock("This is header and footer generation pdf file.") With {.Class = "content"})
	doc.Add(New PageBreak())
Next i

' generate PDF
Using stream As Stream = File.Create("out.pdf")
	doc.Write(stream, resourceManager)
End Using

Process.Start("out.pdf")
VB   C#

Le résultat est le suivant :

Une comparaison de IronPDF avec Apitron PDF SDK .NET - Figure 7 : En-tête et pied de page Apitron

En-tête et pied de page d'Apitron

5. Signer numériquement un PDF

5.1. Utilisation d'IronPDF

L'une des fonctions les plus importantes du traitement des PDF est la possibilité de signer numériquement un document PDF. IronPDF fournit tous les outils nécessaires à cet effet.

using IronPdf;

// Cryptographically sign an existing PDF in 1 line of code!
new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");

/***** Advanced example for more control *****/

// 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

// 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456");

// 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");

// 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);

// 5. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
using IronPdf;

// Cryptographically sign an existing PDF in 1 line of code!
new IronPdf.Signing.PdfSignature("Iron.p12", "123456").SignPdfFile("any.pdf");

/***** Advanced example for more control *****/

// 1. Create a PDF
var Renderer = new IronPdf.ChromePdfRenderer();
var doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>");

// 2. Create a Signature.
// You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

var signature = new IronPdf.Signing.PdfSignature("Iron.pfx", "123456");

// 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png");

// 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature);

// 5. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf");
Imports IronPdf

' Cryptographically sign an existing PDF in 1 line of code!
Call (New IronPdf.Signing.PdfSignature("Iron.p12", "123456")).SignPdfFile("any.pdf")

'''*** Advanced example for more control ****

' 1. Create a PDF
Dim Renderer = New IronPdf.ChromePdfRenderer()
Dim doc = Renderer.RenderHtmlAsPdf("<h1>Testing 2048 bit digital security</h1>")

' 2. Create a Signature.
' You may create a .pfx or .p12 PDF signing certificate using Adobe Acrobat Reader.

Dim signature = New IronPdf.Signing.PdfSignature("Iron.pfx", "123456")

' 3. Handwritten signature graphic
signature.LoadSignatureImageFromFile("handwriting.png")

' 4. Sign the PDF with the PdfSignature. Multiple signing certificates may be used
doc.SignPdfWithDigitalSignature(signature)

' 5. The PDF is not signed until saved to file, stream or byte array.
doc.SaveAs("signed.pdf")
VB   C#

5.2 Utilisation du kit PDF Apitron

L'apposition d'une signature sur un PDF à l'aide d'Apitron PDF Kit est un processus à la fois long et technique.

static void Main(string [] args)
{
    string fileName = "signedTwice.pdf";

    using (Stream stream = File.Create(fileName))
   {
        FlowDocument doc = new FlowDocument(){Margin = new Thickness(10)};
        doc.Add(new TextBlock("Signed using Apitron PDF Kit for .NET"));
        doc.Write(stream,new ResourceManager());
   }

    // save
    Sign(fileName, "../../data/certs/JohnDoe.pfx", "password", "../../data/images/signatureImage.png", new Boundary(10, 750, 110, 800));
}

// Implementation of Sign Method
private static void Sign(string pathToDocument, string pathToCertificate, string password, string pathToSignatureImage, Boundary signatureViewLocation)
{
    // open existing document and sign once
    using (Stream inputStream = new FileStream(pathToDocument, FileMode.Open, FileAccess.ReadWrite))
    {
        using (FixedDocument doc = new FixedDocument(inputStream))
        {
            string imageResourceId = Guid.NewGuid().ToString("N");
            string signatureFieldId = Guid.NewGuid().ToString("N");

            // register signature image resource
            doc.ResourceManager.RegisterResource(new Image(imageResourceId, pathToSignatureImage));

            // create first signature field and initialize it using a stored certificate
            SignatureField signatureField = new SignatureField(signatureFieldId);
            using (Stream signatureDataStream = File.OpenRead(pathToCertificate))
            {
                signatureField.Signature = Signature.Create(new Pkcs12Store(signatureDataStream,password));
            }

            // add signature fields to the document
            doc.AcroForm.Fields.Add(signatureField);

            // create first signature view using the image resource
            SignatureFieldView signatureView = new SignatureFieldView(signatureField, signatureViewLocation);
            signatureView.ViewSettings.Graphic = Graphic.Image;
            signatureView.ViewSettings.GraphicResourceID = imageResourceId;
            signatureView.ViewSettings.Description = Description.None;

            // add views to page annotations collection
            doc.Pages [0].Annotations.Add(signatureView);

            // save as incremental update
            doc.Save();
        }
    }
}
static void Main(string [] args)
{
    string fileName = "signedTwice.pdf";

    using (Stream stream = File.Create(fileName))
   {
        FlowDocument doc = new FlowDocument(){Margin = new Thickness(10)};
        doc.Add(new TextBlock("Signed using Apitron PDF Kit for .NET"));
        doc.Write(stream,new ResourceManager());
   }

    // save
    Sign(fileName, "../../data/certs/JohnDoe.pfx", "password", "../../data/images/signatureImage.png", new Boundary(10, 750, 110, 800));
}

// Implementation of Sign Method
private static void Sign(string pathToDocument, string pathToCertificate, string password, string pathToSignatureImage, Boundary signatureViewLocation)
{
    // open existing document and sign once
    using (Stream inputStream = new FileStream(pathToDocument, FileMode.Open, FileAccess.ReadWrite))
    {
        using (FixedDocument doc = new FixedDocument(inputStream))
        {
            string imageResourceId = Guid.NewGuid().ToString("N");
            string signatureFieldId = Guid.NewGuid().ToString("N");

            // register signature image resource
            doc.ResourceManager.RegisterResource(new Image(imageResourceId, pathToSignatureImage));

            // create first signature field and initialize it using a stored certificate
            SignatureField signatureField = new SignatureField(signatureFieldId);
            using (Stream signatureDataStream = File.OpenRead(pathToCertificate))
            {
                signatureField.Signature = Signature.Create(new Pkcs12Store(signatureDataStream,password));
            }

            // add signature fields to the document
            doc.AcroForm.Fields.Add(signatureField);

            // create first signature view using the image resource
            SignatureFieldView signatureView = new SignatureFieldView(signatureField, signatureViewLocation);
            signatureView.ViewSettings.Graphic = Graphic.Image;
            signatureView.ViewSettings.GraphicResourceID = imageResourceId;
            signatureView.ViewSettings.Description = Description.None;

            // add views to page annotations collection
            doc.Pages [0].Annotations.Add(signatureView);

            // save as incremental update
            doc.Save();
        }
    }
}
Shared Sub Main(ByVal args() As String)
	Dim fileName As String = "signedTwice.pdf"

	Using stream As Stream = File.Create(fileName)
		Dim doc As New FlowDocument() With {.Margin = New Thickness(10)}
		doc.Add(New TextBlock("Signed using Apitron PDF Kit for .NET"))
		doc.Write(stream,New ResourceManager())
	End Using

	' save
	Sign(fileName, "../../data/certs/JohnDoe.pfx", "password", "../../data/images/signatureImage.png", New Boundary(10, 750, 110, 800))
End Sub

' Implementation of Sign Method
Private Shared Sub Sign(ByVal pathToDocument As String, ByVal pathToCertificate As String, ByVal password As String, ByVal pathToSignatureImage As String, ByVal signatureViewLocation As Boundary)
	' open existing document and sign once
	Using inputStream As Stream = New FileStream(pathToDocument, FileMode.Open, FileAccess.ReadWrite)
		Using doc As New FixedDocument(inputStream)
			Dim imageResourceId As String = Guid.NewGuid().ToString("N")
			Dim signatureFieldId As String = Guid.NewGuid().ToString("N")

			' register signature image resource
			doc.ResourceManager.RegisterResource(New Image(imageResourceId, pathToSignatureImage))

			' create first signature field and initialize it using a stored certificate
			Dim signatureField As New SignatureField(signatureFieldId)
			Using signatureDataStream As Stream = File.OpenRead(pathToCertificate)
				signatureField.Signature = Signature.Create(New Pkcs12Store(signatureDataStream,password))
			End Using

			' add signature fields to the document
			doc.AcroForm.Fields.Add(signatureField)

			' create first signature view using the image resource
			Dim signatureView As New SignatureFieldView(signatureField, signatureViewLocation)
			signatureView.ViewSettings.Graphic = Graphic.Image
			signatureView.ViewSettings.GraphicResourceID = imageResourceId
			signatureView.ViewSettings.Description = Description.None

			' add views to page annotations collection
			doc.Pages (0).Annotations.Add(signatureView)

			' save as incremental update
			doc.Save()
		End Using
	End Using
End Sub
VB   C#

Le résultat est à peu près le même pour les bibliothèques. Vous pouvez clairement constater qu'IronPDF est plus facile et plus pratique pour manipuler le contenu des PDF. Le PDF de sortie est signé avec le certificat et la signature imprimés dessus.

6. Prix et licences

Prix et licences d'IronPDF

IronPDF est une bibliothèque C# dont l'utilisation est gratuite pour le développement et qui peut faire l'objet d'une licence pour un usage commercial à tout moment. Les licences de projet pour les développeurs individuels, les agences et les organisations multinationales, ainsi que la redistribution SaaS et OEM, sont toutes accessibles. Toutes les licences sont assorties d'une garantie de remboursement de 30 jours, d'un an d'assistance et de mises à jour, d'une validité de développement, de mise en scène et de production, et d'une licence perpétuelle(achat unique).

La version Lite est disponible pour $749 sans frais récurrents. De plus amples informations et une aide au choix de la meilleure licence sont disponibles sur le site web de la Commission européennePage de licence du produit IronPDF.

Une comparaison d'IronPDF avec Apitron PDF SDK .NET - Figure 8 : Licences d'IronPDF

Licences d'IronPDF

Prix et licences du kit PDF Apitron

Deux systèmes de licence sont actuellement utilisés : le système moderne et le système hérité. Si vous disposez déjà d'une licence, le système de licences héritées reste actif pour vous jusqu'à l'expiration de votre licence. Ensuite, vous devez contacter le service clientèle pour la transition. Le régime de licence moderne ne s'applique à vous que si vous êtes un nouveau client.

Le régime moderne prévoit trois niveaux d'autorisation :

  • Evaluation - période d'évaluation de trois mois permettant d'utiliser un produit entièrement fonctionnel. Il suffit de télécharger le paquetage à partir de NuGet et de commencer à développer.
  • Communauté - Utilisez des produits entièrement fonctionnels sans aucun frais dans vos projets non commerciaux. Une approbation est requise.
  • Commercial - tout cas d'utilisation non décrit ci-dessus. La tarification dépend du mode d'utilisation.

    Pour plus de détails concernant l'achat, vous pouvezcontacter le représentant commercial d'Apitron.

Conclusion

La bibliothèque IronPDF crée des PDF parfaits au pixel près à partir de types de documents tels que HTML, JS, CSS, JPG, PNG, GIF et SVG. Le moteur Chromium aide à rendre les fichiers HTML ou les URL pour produire des PDF parfaits.

Apitron vous permet de créer des PDF en utilisant une API de mise en page fixe, implémentée pour être 100% compatible avec les spécifications PDF. En tant que méthode de génération de contenu axée sur le style, similaire à HTML et CSS, cette API de mise en page fixe vous permet de créer en quelques minutes des rapports, des factures, des catalogues et bien d'autres choses encore. Il prend également en charge la création de modèles XML.

Les prix des licences pour Apitron PDF ne sont pas disponibles sur leur site web. Vous devez contacter le support et obtenir un devis basé sur votre utilisation. D'autre part, IronPDF propose un ensemble de licences très clair sur son site web. Cela permet à IronPDF de se démarquer de ses concurrents et aux utilisateurs de faire un choix judicieux en fonction de leurs besoins.

Avec IronPDF, vous pouvez travailler avec des fichiers PDF plus facilement qu'avec Apitron PDF. IronPDF permet à ses utilisateurs d'écrire moins de lignes de code pour des travaux PDF difficiles. IronPDF propose plusieurs méthodes pour produire des PDF à partir de plusieurs types de fichiers, alors qu'Apitron ne peut convertir que des documents XML en documents PDF. Il est possible d'obtenir un résultat parfait sans ajouter d'options techniques dans IronPDF par rapport à Apitron.

Tous les clients d'Iron Software ont la possibilité d'acheter les cinq produits de la société pour le prix de deux d'entre eux. Essayez leessai gratuit d'IronPDF pendant 30 jours pour tester l'ensemble de ses fonctionnalités. Acheter la suite complète des produits Iron Softwaresur IronSoftware.com.

< PRÉCÉDENT
Telerik HTML to PDF Generator vs IronPDF
SUIVANT >
Comparaison entre IronPDF et GroupDocs