Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

Une comparaison entre IronPDF & ComPDFKit

IronPDF surpasse ComPDFKit pour la génération de PDF en C# grâce à son rendu HTML natif basé sur Chromium, sa prise en charge complète de Bootstrap, sa documentation complète et son intégration .NET supérieure, tandis que ComPDFKit nécessite des appels d'API externes pour la conversion HTML et manque de compatibilité avec les frameworks CSS avancés.

PDF, abréviation de Portable Document Format, est un type de fichier créé par Adobe pour garantir l'uniformité dans le partage de documents. Ce format garantit une mise en page, un texte et des images cohérents sur différents appareils et systèmes d'exploitation. Le format PDF offre sécurité, fonctionnalités interactives et une taille de fichier compacte, ce qui le rend idéal pour la distribution de documents sans altération de leur contenu.

Pour les développeurs utilisant C#, les bibliothèques PDF offrent des solutions pour travailler avec des fichiers PDF. Ces bibliothèques permettent la création de documents, la modification de leur contenu et l'extraction de texte et d'images. Ils prennent en charge des fonctionnalités telles que la gestion des formulaires, les signatures numériques et la compatibilité multiplateforme. Conçues pour améliorer les performances, ces bibliothèques permettent un traitement efficace des fichiers PDF.

Cet article compare deux bibliothèques PDF C# : IronPDF et ComPDFKit . Cette comparaison porte sur les fonctionnalités, les exemples de code et les licences. En examinant ces aspects, les développeurs peuvent déterminer quelle bibliothèque convient le mieux à leurs projets liés aux fichiers PDF.

Aperçu rapide de la comparaison

Avant de passer à une analyse détaillée, voici une comparaison complète des principales caractéristiques :

Fonction IronPDF ComPDFKit
HTML à PDF Moteur Chromium natif API externe requise
Prise en charge de Bootstrap Prise en charge complète de CSS3/Flexbox Prise en charge limitée des frameworks CSS
Installation Paquet NuGet unique Plusieurs paquets nécessaires
Documentation Complet avec plus de 500 exemples Documentationde base
Support Assistance technique dédiée 24h/24 et 5j/7 Assistance par e-mail standard
Modèle de tarification Licence perpétuelle à partir de 749 $ Tarification sur devis
Cross-Platform Windows, Linux, macOS, Docker, Azure Windows, Linux, macOS
Performance Optimisation asynchrone/multithreading Traitement synchrone standard
Fonctionnalités Enterprise Signature PDF/A, PDF/UA, HSM Prise en charge de base des fichiers PDF/A
Courbe d'apprentissage API minimale et intuitive Structure d'API modérée à complexe
  1. Visualisation de PDF : ComPDFKit fournit une visionneuse PDF puissante qui permet aux utilisateurs de visualiser des documents PDF avec une grande fidélité. Le visionneur prend en charge le défilement fluide, le zoom et la navigation, garantissant une expérience utilisateur transparente.
  2. Annotations : La bibliothèque comprend des outils permettant d'intégrer facilement les annotations PDF. Les utilisateurs peuvent surligner du texte, ajouter des commentaires et créer divers types d'annotations, qui sont essentiels pour les flux de travail collaboratifs.
  3. Gestion des formulaires : La bibliothèque offre une prise en charge étendue des formulaires interactifs. Les développeurs peuvent créer, remplir et extraire des données de formulaires PDF, ce qui la rend idéale pour les applications nécessitant le traitement de formulaires.
  4. Édition de PDF : ComPDFKit offre des fonctionnalités étendues d'édition de PDF, notamment la modification du texte, des images et d'autres contenus dans les fichiers PDF. Cette fonctionnalité est utile pour les applications qui doivent mettre à jour ou personnaliser des documents PDF existants.
  5. Conversion : La bibliothèque prend en charge la conversion de fichiers PDF vers et depuis différents formats tels que Word, Excel, PowerPoint et images. Cette flexibilité est essentielle pour les applications qui doivent transformer le contenu PDF pour différents usages.
  6. Sécurité : ComPDFKit inclut des fonctionnalités de sécurité robustes telles que le chiffrement et la gestion des autorisations. Les développeurs peuvent sécuriser des documents PDF pour protéger des informations sensibles d'un accès non autorisé.
  7. Reconnaissance optique de caractères (OCR) : La bibliothèque comprend des fonctionnalités OCR pour convertir les documents numérisés en PDF modifiables et consultables. Cette fonctionnalité est essentielle pour numériser des documents papier et les rendre accessibles électroniquement.

La page d'accueil de ComPDFKit présente ses solutions complètes de développement logiciel PDF (SDK) pour les développeurs, avec des captures d'écran des fonctionnalités d'annotation et des exemples de code illustrant les capacités de manipulation de fichiers PDF.

ComPDFKit PDF SDK est un SDK PDF C# fiable qui permet aux développeurs d'intégrer des fonctionnalités PDF complètes dans leurs applications. Cette bibliothèque prend en charge un large éventail de fonctions PDF nécessaires à la gestion programmatique des documents PDF. Il est conçu pour être utilisé dans divers environnements, y compris les plateformes Web, de bureau et mobiles, ce qui en fait un outil polyvalent pour les développeurs travaillant sur des projets multiplateformes. La solution proposée en exemple comprend plusieurs fonctions que les développeurs peuvent sélectionner et tester.

Quelles sont les principales fonctionnalités offertes par ComPDFKit  ?

Capacités principales :

  • Visualisation de fichiers PDF : Offre une visionneuse efficace avec des fonctions de défilement, de zoom et de navigation fluides.
  • Annotations : Comprend des outils pour surligner du texte, ajouter des commentaires et créer différents types d'annotations.
  • Gestion des formulaires : Permet de créer, de remplir et d'extraire des données à partir de formulaires PDF interactifs.
  • Édition de PDF : Permet de modifier le texte, les images et autres contenus des documents PDF existants.
  • Conversion : Prend en charge la conversion des fichiers PDF vers les formats Word, Excel et image.
  • Sécurité : Inclut le chiffrement et la gestion des autorisations pour protéger les informations sensibles
  • Reconnaissance optique de caractères (OCR) : Convertit les documents numérisés en PDF modifiables et consultables.

Pourquoi envisager l'architecture de ComPDFKit  ?

  1. Conversion HTML vers PDF :IronPDF excelle dans la conversion de contenu HTML, CSS et JavaScript en documents PDF de haute qualité. Cette fonctionnalité prend en charge les chaînes HTML en PDFs, les URL, les webforms ASPX et les vues MVC, ce qui en fait une solution flexible pour divers contenus basés sur le Web.
  2. Édition de PDF : La bibliothèque offre de nombreuses fonctionnalités d'édition, notamment l'ajout, la copie et la suppression de pages, la fusion et la division de PDF, ainsi que la manipulation de texte et d'images. Les développeurs peuvent également ajouter des en-têtes, des pieds de page, des filigranes et des signatures numériques aux documents PDF.
  3. Gestion des formulaires :IronPDF prend en charge la création de formulaires intelligents et le remplissage programmatique des formulaires PDF . Cette fonctionnalité est essentielle pour les applications qui nécessitent la génération dynamique de formulaires et l'extraction de données à partir de formulaires soumis par l'utilisateur.
  4. Fonctionnalités de sécurité :IronPDF offre des options de sécurité robustes, telles que la définition de mots de passe et d'autorisations, le chiffrement des documents et l'ajout de signatures numériques. Ces fonctionnalités garantissent que les informations sensibles contenues dans les documents PDF sont protégées contre l'accès non autorisé.
  5. OCR et extraction de données : La bibliothèque comprend des capacités de reconnaissance optique de caractères (OCR), permettant la conversion de documents numérisés en PDF modifiables et consultables. De plus,IronPDF peut extraire du texte, des images et d'autres données à partir de PDFs existants, facilitant la réutilisation et l'analyse de contenu.
  6. Conversion d'images :IronPDF prend en charge la conversion de divers formats d'image, notamment JPG, PNG, GIF, BMP et SVG, en documents PDF. Elle offre également la possibilité de rendre des pages PDF en tant qu'images, ce qui est utile pour les applications nécessitant des aperçus visuels du contenu PDF.
  7. Compatibilité multiplateforme :IronPDF est compatible avec plusieurs plateformes .NET , notamment .NET Core, .NET Framework et .NET Standard. Elle prend en charge le déploiement sur Windows, Linux, macOSet Azure, ce qui en fait un choix polyvalent pour les développeurs travaillant dans divers environnements.
  8. Optimisation des performances : La bibliothèque est conçue pour des performances élevées, avec prise en charge du multithreading et des opérations asynchrones. Cela garantit que les tâches de traitement PDF sont exécutées efficacement, même dans des applications avec des charges de travail élevées.
  9. Documentation et assistance complètes :IronPDF fournit une documentation détaillée et de nombreux exemples de code, ce qui permet aux développeurs de démarrer facilement et de mettre en œuvre ses fonctionnalités. De plus, elle offre un support technique pour aider à résoudre les problèmes qui peuvent survenir pendant le développement.

Pour les applications Enterprise nécessitant des fonctionnalités d'annotation fiables, ComPDFKit offre des fonctionnalités de base. Les fonctionnalités avancées de création de formulaires peuvent nécessiter un effort de programmation supplémentaire. Bien que fonctionnelle pour les tâches de reconnaissance optique de caractères (OCR), les développeurs recherchant une reconnaissance de texte avancée devraient évaluer des alternatives comme IronOCR pour une précision supérieure.

Quelles sont les limitations de ComPDFKit  ?

Malgré son ensemble complet de fonctionnalités, ComPDFKit présente plusieurs limitations pour le développement en Enterprise :

  • Rendu HTML : Aucune conversion native HTML vers PDF - nécessite des appels d'API externes
  • Prise en charge CSS : Compatibilité limitée avec les frameworks CSS modernes
  • Performances : Absence d'optimisation asynchrone/multithread intégrée
  • Documentation: Exemples de base sans guides de dépannage complets
  • Complexité de l'intégration : Plusieurs packages sont nécessaires pour une fonctionnalité complète

Qu'est-ce que la bibliothèque IronPDF  ?

 Page d'accueilIronPDF présentant l'interface de la bibliothèque PDF en C# avec un exemple de code pour la conversion HTML vers PDF, mettant en avant plus de 10 millions de téléchargements et Enterprise adoption par les entreprises du Fortune 500.

IronPDF est une bibliothèque PDF polyvalente pour .NET qui permet aux développeurs de créer, d'éditer et de gérer des documents PDF en utilisant C#. Elle offre des fonctionnalités PDF complètes grâce à des API simplifiées. Cette bibliothèque excelle dans la génération de PDF en prenant en charge le rendu à partir de HTML, CSS, JavaScript et divers formats d'image. Cela en fait un outil idéal pour les développeurs qui intègrent des fonctionnalités PDF fiables dans les applications .NET .

Quelles sont les principales fonctionnalités offertes par IronPDF  ?

Capacités avancées :

Pourquoi choisirIronPDF pour les systèmes de production ?

L'architecture d'IronPDF privilégie la performance et la fiabilité pour les environnements de production :

Qu'est-ce qui rendIronPDF adapté aux entreprises ?

IronPDF se distingue par ses fonctionnalités axées sur la production :

Comment créer un nouveau projet Visual Studio ?

Avant d'explorer les exemples de code, les développeurs doivent créer un nouveau projet Visual Studio. Ce guide décrit la configuration d'une application console C# dans Visual Studio.

Pourquoi ai-je besoin de Visual Studio installé ?

Visual Studio offre un environnement de développement intégré (IDE) amélioré pour les projets C#. Téléchargez-le depuis la page de téléchargement de Visual Studio . L'IDE offre un débogage intégré, IntelliSense, et une gestion des packages essentiels pour le développement PDF.

Quelle configuration de projet est la plus adaptée ?

Après l'installation, ouvrez Visual Studio. Connectez-vous ou continuez sans vous connecter lorsque vous utilisez Visual Studio Community. Suivez ces étapes de configuration :

  1. Cliquez sur " Créer un nouveau projet " ou accédez à Fichier > Nouveau > Projet.

    L'environnement de développement intégré (IDE) de Visual Studio affiche le menu Fichier ouvert avec les options permettant de créer de nouveaux projets, d'ouvrir des fichiers et de gérer les dépôts, l'option Nouveau projet étant mise en évidence.

  2. Recherchez " Application console " et sélectionnez-la dans les résultats de la recherche.

    Boîte de dialogue

  3. Ouvrez le Gestionnaire de packages NuGet : dans l'Explorateur de solutions, cliquez avec le bouton droit sur " Références " et sélectionnez " Gérer les packages NuGet ".
  4. Recherche et installation : recherchez " ComPDFKit  " dans le gestionnaire de packages NuGet . Sélectionnez l'package approprié (ex. ComPDFKit.NetFramework ou ComPDFKit.Conversion.NetFramework) et cliquez sur " Installer ".

Quels sont les paramètres essentiels d'un projet ?

  1. Vérifier l'installation : assurez-vous que le package apparaît sous " Références " dans l'Explorateur de solutions.
  • Plateforme cible : définie sur x64 pour le traitement des documents volumineux Type de sortie : application console pour les tests, bibliothèque de classes pour la production.
  • Version du framework : .NET 6 ou version ultérieure recommandée pour des performances optimales
  • Gestion des packages NuGet : activer la restauration des packages pour la gestion des dépendances
  1. Téléchargement du package : Obtenez le fichier ComPDFKit.NetFramework.nupkg depuis le site Web officiel de ComPDFKit.
  2. Configurer la source NuGet : Créez ou modifiez un fichier .config NuGet dans le répertoire de votre projet pour y inclure le chemin d'accès au package local.

L'intégrationIronPDF dans les projets peut être réalisée par différentes méthodes. Pour une présentation complète de l'installation , veuillez vous référer à la documentation officielle. La bibliothèque prend en charge plusieurs méthodes d'installation adaptées aux différents flux de travail de développement.

  1. Installation du package local : rouvrez votre solution dans Visual Studio, accédez à " Gérer les packages NuGet " et sélectionnez votre source de package locale. Installez le package ComPDFKit à partir de la source locale.

  2. Gestionnaire de packages NuGet de Visual Studio : Cliquez avec le bouton droit sur " Dépendances " dans la solution et sélectionnez " Gérer les packages NuGet ". Dans l'onglet " Parcourir ", recherchez " IronPDF" et installez la dernière version. Pour connaître les options d'installation avancées de NuGet , consultez le guide détaillé.

  3. Obtenir une licence : Contactez l'équipe ComPDFKit pour obtenir une licence d'essai ou une licence complète.
  4. Appliquer la licence dans le code :

  5. Console du gestionnaire de packages : Utilisez la console du gestionnaire de packages NuGet via Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages. Exécutez la commande :

    _CODEBLOCK_0 _

    Cela permet une installation rapide de la bibliothèque via une interface en ligne de commande.

    Fenêtre de la console du gestionnaire de packages affichant l'installation du package NuGetIronPDF version 2024.5.2 dans un projet C# Test Boards avec confirmation d'installation réussie.

  6. Méthode de téléchargement direct : Visitez la page du package NuGet IronPDF . Téléchargez le fichier du package, double-cliquez dessus pour l'ajouter au projet, puis rechargez la solution.

  7. Installation manuelle : Téléchargez directement la dernière version IronPDF . Suivez les instructions fournies pour l'intégration manuelle de Visual Studio. Pour l'installation spécifique à Windows, consultez le guide d'installation Windows .

Pourquoi choisir des approches d'installation spécifiques ?

Différentes méthodes d'installation conviennent à différents scénarios :

  • Gestionnaire de packages NuGet : Idéal pour les utilisateurs de Visual Studio ayant accès à Internet
  • Console du gestionnaire de packages : Idéale pour les déploiements scriptés et les pipelines CI/CD
  • Téléchargement direct : Convient aux environnements de développement hors ligne
  • Installation manuelle : requise pour les configurations de déploiement personnalisées

Ces méthodes permettent d'intégrer efficacementIronPDF dans les projets .NET . Pour des instructions de démarrage rapide , consultez le guide de démarrage. Des guides spécifiques à chaque plateforme traitent de l'intégration de F# et de l'utilisation de VB .NET .

Comment installer ComPDFKitC# ?

Il existe deux méthodes principales pour ajouter ComPDFKit aux projets : le gestionnaire de packages NuGet ou l'installation locale du package. Le processus d'installation nécessite plus d'étapes que l'approche à package unique d'IronPDF.

Quand dois-je utiliser NuGet Package Manager ?

  1. Ouvrez le Gestionnaire de packages NuGet : cliquez avec le bouton droit sur " Références " dans l'Explorateur de solutions et sélectionnez " Gérer les packages NuGet ".
  2. Recherche et installation : Recherchez " ComPDFKit" dans le Package Manager. Sélectionnez le package approprié (ComPDFKit.NetFramework ou ComPDFKit.Conversion.NetFramework) et cliquez sur " Installer ".

 Interface du gestionnaire de packages NuGet affichant les résultats de recherche de ComPDFKit avec trois packages listés : ComPDFKit.NetFramework, ComPDFKit.Conversion.NetFramework et compdfkit-api-dotnet pour différents cas d'utilisation.

  1. Vérifier l'installation : Assurez-vous que le package apparaît sous " Références " dans l'Explorateur de solutions. Plusieurs modules peuvent être nécessaires pour une fonctionnalité complète.

Quand dois-je utiliser un paquet local ?

L'installation locale du package convient aux environnements restreints :

  1. Téléchargement du package : Obtenez ComPDFKit.NetFramework.nupkg depuis le site Web officiel de ComPDFKit.
  2. Configurer la source NuGet : Créez ou modifiez nuget.config dans le répertoire du projet pour inclure le chemin du package local.

    _CODEBLOCK_1 _

  3. Installation du package local : Rouvrez la solution, accédez à " Gérer les packages NuGet ", sélectionnez la source du package local et installez ComPDFKit.

Comment puis-je appliquer ma clé de licence ?

La mise en œuvre des licences diffère considérablement d'une bibliothèque à l'autre :

  1. Obtenir une licence : Contactez ComPDFKit pour obtenir une licence d'essai ou une licence complète.
  2. Appliquer la licence dans le code :

    _CODEBLOCK_2 _

    Ajoutez cette méthode pour vérifier les licences. Pour en savoir plus sur l'implémentation simplifiée des licences d'IronPDF, consultez la documentation relative aux clés de licence .IronPDF nécessite uniquement la configuration de la propriété License.LicenseKey, ce qui simplifie le processus de licence.

Comment convertir du HTML en PDF ?

La conversion de HTML en PDF est une opération courante pour générer des rapports, des factures ou de la documentation à partir de contenu web.IronPDF et ComPDFKit proposent tous deux des solutions, bien que leurs approches diffèrent considérablement.IronPDF assure une conversion native tandis que ComPDFKit nécessite des appels d'API externes.

CommentIronPDF gère-t-il la conversion HTML vers PDF ?

IronPDF utilise un moteur de rendu basé sur Chrome pour une sortie de haute qualité. Ce processus convertit avec précision le HTML, le CSS et le JavaScript au format PDF. La bibliothèque prend en charge les chaînes HTML , les fichiers HTML et les URL .

Exemple de conversion basique d'une chaîne HTML en PDF :

using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Define your HTML string
        string htmlString = @"
            <h1>Hello, IronPDF!</h1>
            <p>This is a simple PDF created from an HTML string.</p>";

        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlString);
        // Save the PDF document to a file
        string outputPath = "sample.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        // Define your HTML string
        string htmlString = @"
            <h1>Hello, IronPDF!</h1>
            <p>This is a simple PDF created from an HTML string.</p>";

        var renderer = new ChromePdfRenderer();
        // Convert the HTML string to a PDF document
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlString);
        // Save the PDF document to a file
        string outputPath = "sample.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
Imports IronPdf
Imports System

Friend Class Program
	Shared Sub Main()
		' Define your HTML string
		Dim htmlString As String = "
            <h1>Hello, IronPDF!</h1>
            <p>This is a simple PDF created from an HTML string.</p>"

		Dim renderer = New ChromePdfRenderer()
		' Convert the HTML string to a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlString)
		' Save the PDF document to a file
		Dim outputPath As String = "sample.pdf"
		pdf.SaveAs(outputPath)
		Console.WriteLine($"PDF created successfully and saved to {outputPath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

 SortieIronPDF montrant un PDF simple avec l'en-tête

IronPDF convertit également directement les fichiers HTML, prenant en charge l'inclusion de CSS et de JavaScript :

using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        // Convert the HTML file to a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("index.html");
        // Save the PDF document to a file
        string outputPath = "HTML File.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        // Convert the HTML file to a PDF document
        PdfDocument pdf = renderer.RenderHtmlFileAsPdf("index.html");
        // Save the PDF document to a file
        string outputPath = "HTML File.pdf";
        pdf.SaveAs(outputPath);
        Console.WriteLine($"PDF created successfully and saved to {outputPath}");
    }
}
Imports IronPdf
Imports System

Friend Class Program
	Shared Sub Main()
		Dim renderer = New ChromePdfRenderer()
		' Convert the HTML file to a PDF document
		Dim pdf As PdfDocument = renderer.RenderHtmlFileAsPdf("index.html")
		' Save the PDF document to a file
		Dim outputPath As String = "HTML File.pdf"
		pdf.SaveAs(outputPath)
		Console.WriteLine($"PDF created successfully and saved to {outputPath}")
	End Sub
End Class
$vbLabelText   $csharpLabel

Sample invoice #123 showing website design services totaling $385, rendered as a PDF document with professional formatting and layout preserved from HTML source.

Quelles sont les fonctionnalités HTML avancées prises en charge par IronPDF  ?

Le moteur Chromium d'IronPDF gère des technologies web complexes :

Comment ComPDFKit gère-t-il la conversion HTML vers PDF ?

  1. Envoyer du contenu HTML : Créez une requête HTTP POST vers le point de terminaison de l'API ComPDFKit avec votre contenu HTML.
  2. Réception du fichier PDF : L'API traite le contenu HTML et renvoie le fichier PDF généré.

Pour utiliser l'API HTML vers PDF de ComPDFKit  :

  1. Envoyer du contenu HTML : Créez une requête HTTP POST avec du contenu HTML
  2. Réception du fichier PDF : L'API traite le contenu et renvoie le PDF généré.

Exemple de structure pour les requêtes API en C# :

using System;
using System.Net.Http;
using System.Threading.Tasks;

public class HtmlToPdfExample
{
    public static async Task ConvertHtmlToPdfAsync()
    {
        using (var client = new HttpClient())
        {
            var content = new StringContent("<h1>Hello World</h1>");
            var response = await client.PostAsync("___PROTECTED_URL_137___", content);
            var pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
        }
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class HtmlToPdfExample
{
    public static async Task ConvertHtmlToPdfAsync()
    {
        using (var client = new HttpClient())
        {
            var content = new StringContent("<h1>Hello World</h1>");
            var response = await client.PostAsync("___PROTECTED_URL_137___", content);
            var pdfBytes = await response.Content.ReadAsByteArrayAsync();
            System.IO.File.WriteAllBytes("output.pdf", pdfBytes);
        }
    }
}
Imports System
Imports System.Net.Http
Imports System.Threading.Tasks

Public Class HtmlToPdfExample
    Public Shared Async Function ConvertHtmlToPdfAsync() As Task
        Using client As New HttpClient()
            Dim content As New StringContent("<h1>Hello World</h1>")
            Dim response As HttpResponseMessage = Await client.PostAsync("___PROTECTED_URL_137___", content)
            Dim pdfBytes As Byte() = Await response.Content.ReadAsByteArrayAsync()
            System.IO.File.WriteAllBytes("output.pdf", pdfBytes)
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

Quelles sont les limites de la conversion basée sur les API ?

L'approche API de ComPDFKit soulève plusieurs défis :

  • Dépendance au réseau : Nécessite une connexion Internet pour les opérations de base
  • Problèmes de latence : Les allers-retours avec l'API ajoutent du temps de traitement
  • Contrôle limité : Impossible de personnaliser le comportement du moteur de rendu
  • Problèmes de sécurité : Des données sensibles sont transmises à des serveurs externes
  • Limitation du débit : les quotas d'API peuvent restreindre le traitement des volumes importants de données.
  • Documentation insuffisante : exemples d'implémentation en C# limités

Le CSS de Bootstrap fonctionne-t-il avec la génération de PDF ?

Les applications modernes de commerce électronique et d'entreprise utilisent largement Bootstrap pour une conception d'interface utilisateur cohérente. Lors de la génération de factures, de reçus et de rapports au format PDF, le maintien du style Bootstrap garantit la cohérence de la marque. Le moteur Chromium d'IronPDF offre une prise en charge complète de Bootstrap, tandis que l'approche basée sur une API de ComPDFKit présente des limitations avec les frameworks CSS complexes.

CommentIronPDF gère-t-il le style Bootstrap ?

IronPDF utilise le moteur de rendu de Chromium, offrant une prise en charge parfaite de Bootstrap sur toutes les versions (Bootstrap 5, 4 et 3). La bibliothèque gère de manière transparente les mises en page Flexbox, la grille CSS, les utilitaires réactifs et les composants personnalisés. Pour plus d'informations sur le rendu CSS avancé, consultez le guide des options de rendu .

using IronPdf;

// Set license
IronPdf.License.LicenseKey = "License-Key";

var renderer = new ChromePdfRenderer();

// Bootstrap 5 e-commerce invoice example
string bootstrapInvoice = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link href='___PROTECTED_URL_138___ rel='stylesheet'>
    <style>
        @page { margin: 20mm; }
        .invoice-header { border-bottom: 3px solid #0d6efd; }
        .product-row { border-bottom: 1px solid #dee2e6; }
        .total-section { background-color: #f8f9fa; }
    </style>
</head>
<body>
    <div class='container-fluid p-4'>

        <div class='row invoice-header pb-4 mb-4'>
            <div class='col-8'>
                <h1 class='display-4 text-primary'>INVOICE</h1>
                <p class='text-muted mb-0'>TechStore Inc.</p>
                <p class='text-muted mb-0'>123 Commerce Street, Tech City, TC 12345</p>
                <p class='text-muted'>Email: sales@techstore.com | Phone: (555) 123-4567</p>
            </div>
            <div class='col-4 text-end'>
                <p class='mb-1'><strong>Invoice #:</strong> INV-2024-1089</p>
                <p class='mb-1'><strong>Date:</strong> October 27, 2024</p>
                <p class='mb-1'><strong>Due Date:</strong> November 27, 2024</p>
                <span class='badge bg-success'>PAID</span>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-6'>
                <h5 class='text-primary'>Bill To:</h5>
                <p class='mb-1'><strong>Acme Corporation</strong></p>
                <p class='mb-1'>456 Business Ave</p>
                <p class='mb-1'>Enterprise City, EC 67890</p>
                <p class='mb-0'>contact@acmecorp.com</p>
            </div>
            <div class='col-6 text-end'>
                <h5 class='text-primary'>Payment Method:</h5>
                <p class='mb-1'>Credit Card ending in 4242</p>
                <p class='mb-0'>Transaction ID: TXN-9876543210</p>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <table class='table'>
                    <thead class='table-primary'>
                        <tr>
                            <th scope='col'>#</th>
                            <th scope='col'>Product</th>
                            <th scope='col'>Description</th>
                            <th scope='col' class='text-center'>Qty</th>
                            <th scope='col' class='text-end'>Unit Price</th>
                            <th scope='col' class='text-end'>Amount</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class='product-row'>
                            <td>1</td>
                            <td><strong>IronPDF Pro License</strong></td>
                            <td>Professional developer license with 1 year support</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$2,999.00</td>
                            <td class='text-end'><strong>$2,999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>2</td>
                            <td><strong>Priority Support</strong></td>
                            <td>24/7 priority technical support package</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$999.00</td>
                            <td class='text-end'><strong>$999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>3</td>
                            <td><strong>Training Package</strong></td>
                            <td>On-site developer training (2 days)</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$1,500.00</td>
                            <td class='text-end'><strong>$1,500.00</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>

        <div class='row justify-content-end mb-4'>
            <div class='col-md-6'>
                <div class='card total-section'>
                    <div class='card-body'>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Subtotal:</strong></div>
                            <div class='col-6 text-end'>$5,498.00</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Tax (8.5%):</strong></div>
                            <div class='col-6 text-end'>$467.33</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6 text-success'><strong>Discount (10%):</strong></div>
                            <div class='col-6 text-end text-success'>-$549.80</div>
                        </div>
                        <hr>
                        <div class='row'>
                            <div class='col-6'><h4 class='text-primary'>Total:</h4></div>
                            <div class='col-6 text-end'><h4 class='text-primary'>$5,415.53</h4></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <div class='alert alert-info' role='alert'>
                    <h6 class='alert-heading'>Payment Terms</h6>
                    <p class='mb-0'>Payment is due within 30 days. Late payments may incur a 1.5% monthly interest charge. Thank you for your business!</p>
                </div>
            </div>
        </div>

        <div class='row border-top pt-3'>
            <div class='col-12 text-center text-muted'>
                <small>TechStore Inc. | Tax ID: 12-3456789 | All prices in USD</small>
            </div>
        </div>
    </div>
</body>
</html>";

// Render PDF with optimized settings
var pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);

// Add metadata for document management
pdf.MetaData.Title = "Invoice INV-2024-1089";
pdf.MetaData.Author = "TechStore Inc.";
pdf.MetaData.Subject = "Sales Invoice";
pdf.MetaData.Keywords = "invoice, payment, e-commerce";

// Save the invoice
pdf.SaveAs("invoice-with-bootstrap.pdf");
using IronPdf;

// Set license
IronPdf.License.LicenseKey = "License-Key";

var renderer = new ChromePdfRenderer();

// Bootstrap 5 e-commerce invoice example
string bootstrapInvoice = @"
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link href='___PROTECTED_URL_138___ rel='stylesheet'>
    <style>
        @page { margin: 20mm; }
        .invoice-header { border-bottom: 3px solid #0d6efd; }
        .product-row { border-bottom: 1px solid #dee2e6; }
        .total-section { background-color: #f8f9fa; }
    </style>
</head>
<body>
    <div class='container-fluid p-4'>

        <div class='row invoice-header pb-4 mb-4'>
            <div class='col-8'>
                <h1 class='display-4 text-primary'>INVOICE</h1>
                <p class='text-muted mb-0'>TechStore Inc.</p>
                <p class='text-muted mb-0'>123 Commerce Street, Tech City, TC 12345</p>
                <p class='text-muted'>Email: sales@techstore.com | Phone: (555) 123-4567</p>
            </div>
            <div class='col-4 text-end'>
                <p class='mb-1'><strong>Invoice #:</strong> INV-2024-1089</p>
                <p class='mb-1'><strong>Date:</strong> October 27, 2024</p>
                <p class='mb-1'><strong>Due Date:</strong> November 27, 2024</p>
                <span class='badge bg-success'>PAID</span>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-6'>
                <h5 class='text-primary'>Bill To:</h5>
                <p class='mb-1'><strong>Acme Corporation</strong></p>
                <p class='mb-1'>456 Business Ave</p>
                <p class='mb-1'>Enterprise City, EC 67890</p>
                <p class='mb-0'>contact@acmecorp.com</p>
            </div>
            <div class='col-6 text-end'>
                <h5 class='text-primary'>Payment Method:</h5>
                <p class='mb-1'>Credit Card ending in 4242</p>
                <p class='mb-0'>Transaction ID: TXN-9876543210</p>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <table class='table'>
                    <thead class='table-primary'>
                        <tr>
                            <th scope='col'>#</th>
                            <th scope='col'>Product</th>
                            <th scope='col'>Description</th>
                            <th scope='col' class='text-center'>Qty</th>
                            <th scope='col' class='text-end'>Unit Price</th>
                            <th scope='col' class='text-end'>Amount</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class='product-row'>
                            <td>1</td>
                            <td><strong>IronPDF Pro License</strong></td>
                            <td>Professional developer license with 1 year support</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$2,999.00</td>
                            <td class='text-end'><strong>$2,999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>2</td>
                            <td><strong>Priority Support</strong></td>
                            <td>24/7 priority technical support package</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$999.00</td>
                            <td class='text-end'><strong>$999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>3</td>
                            <td><strong>Training Package</strong></td>
                            <td>On-site developer training (2 days)</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$1,500.00</td>
                            <td class='text-end'><strong>$1,500.00</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>

        <div class='row justify-content-end mb-4'>
            <div class='col-md-6'>
                <div class='card total-section'>
                    <div class='card-body'>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Subtotal:</strong></div>
                            <div class='col-6 text-end'>$5,498.00</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Tax (8.5%):</strong></div>
                            <div class='col-6 text-end'>$467.33</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6 text-success'><strong>Discount (10%):</strong></div>
                            <div class='col-6 text-end text-success'>-$549.80</div>
                        </div>
                        <hr>
                        <div class='row'>
                            <div class='col-6'><h4 class='text-primary'>Total:</h4></div>
                            <div class='col-6 text-end'><h4 class='text-primary'>$5,415.53</h4></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <div class='alert alert-info' role='alert'>
                    <h6 class='alert-heading'>Payment Terms</h6>
                    <p class='mb-0'>Payment is due within 30 days. Late payments may incur a 1.5% monthly interest charge. Thank you for your business!</p>
                </div>
            </div>
        </div>

        <div class='row border-top pt-3'>
            <div class='col-12 text-center text-muted'>
                <small>TechStore Inc. | Tax ID: 12-3456789 | All prices in USD</small>
            </div>
        </div>
    </div>
</body>
</html>";

// Render PDF with optimized settings
var pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice);

// Add metadata for document management
pdf.MetaData.Title = "Invoice INV-2024-1089";
pdf.MetaData.Author = "TechStore Inc.";
pdf.MetaData.Subject = "Sales Invoice";
pdf.MetaData.Keywords = "invoice, payment, e-commerce";

// Save the invoice
pdf.SaveAs("invoice-with-bootstrap.pdf");
Imports IronPdf

' Set license
IronPdf.License.LicenseKey = "License-Key"

Dim renderer As New ChromePdfRenderer()

' Bootstrap 5 e-commerce invoice example
Dim bootstrapInvoice As String = "
<!DOCTYPE html>
<html lang='en'>
<head>
    <meta charset='utf-8'>
    <meta name='viewport' content='width=device-width, initial-scale=1'>
    <link href='___PROTECTED_URL_138___ rel='stylesheet'>
    <style>
        @page { margin: 20mm; }
        .invoice-header { border-bottom: 3px solid #0d6efd; }
        .product-row { border-bottom: 1px solid #dee2e6; }
        .total-section { background-color: #f8f9fa; }
    </style>
</head>
<body>
    <div class='container-fluid p-4'>

        <div class='row invoice-header pb-4 mb-4'>
            <div class='col-8'>
                <h1 class='display-4 text-primary'>INVOICE</h1>
                <p class='text-muted mb-0'>TechStore Inc.</p>
                <p class='text-muted mb-0'>123 Commerce Street, Tech City, TC 12345</p>
                <p class='text-muted'>Email: sales@techstore.com | Phone: (555) 123-4567</p>
            </div>
            <div class='col-4 text-end'>
                <p class='mb-1'><strong>Invoice #:</strong> INV-2024-1089</p>
                <p class='mb-1'><strong>Date:</strong> October 27, 2024</p>
                <p class='mb-1'><strong>Due Date:</strong> November 27, 2024</p>
                <span class='badge bg-success'>PAID</span>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-6'>
                <h5 class='text-primary'>Bill To:</h5>
                <p class='mb-1'><strong>Acme Corporation</strong></p>
                <p class='mb-1'>456 Business Ave</p>
                <p class='mb-1'>Enterprise City, EC 67890</p>
                <p class='mb-0'>contact@acmecorp.com</p>
            </div>
            <div class='col-6 text-end'>
                <h5 class='text-primary'>Payment Method:</h5>
                <p class='mb-1'>Credit Card ending in 4242</p>
                <p class='mb-0'>Transaction ID: TXN-9876543210</p>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <table class='table'>
                    <thead class='table-primary'>
                        <tr>
                            <th scope='col'>#</th>
                            <th scope='col'>Product</th>
                            <th scope='col'>Description</th>
                            <th scope='col' class='text-center'>Qty</th>
                            <th scope='col' class='text-end'>Unit Price</th>
                            <th scope='col' class='text-end'>Amount</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr class='product-row'>
                            <td>1</td>
                            <td><strong>IronPDF Pro License</strong></td>
                            <td>Professional developer license with 1 year support</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$2,999.00</td>
                            <td class='text-end'><strong>$2,999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>2</td>
                            <td><strong>Priority Support</strong></td>
                            <td>24/7 priority technical support package</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$999.00</td>
                            <td class='text-end'><strong>$999.00</strong></td>
                        </tr>
                        <tr class='product-row'>
                            <td>3</td>
                            <td><strong>Training Package</strong></td>
                            <td>On-site developer training (2 days)</td>
                            <td class='text-center'>1</td>
                            <td class='text-end'>$1,500.00</td>
                            <td class='text-end'><strong>$1,500.00</strong></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>

        <div class='row justify-content-end mb-4'>
            <div class='col-md-6'>
                <div class='card total-section'>
                    <div class='card-body'>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Subtotal:</strong></div>
                            <div class='col-6 text-end'>$5,498.00</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6'><strong>Tax (8.5%):</strong></div>
                            <div class='col-6 text-end'>$467.33</div>
                        </div>
                        <div class='row mb-2'>
                            <div class='col-6 text-success'><strong>Discount (10%):</strong></div>
                            <div class='col-6 text-end text-success'>-$549.80</div>
                        </div>
                        <hr>
                        <div class='row'>
                            <div class='col-6'><h4 class='text-primary'>Total:</h4></div>
                            <div class='col-6 text-end'><h4 class='text-primary'>$5,415.53</h4></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='row mb-4'>
            <div class='col-12'>
                <div class='alert alert-info' role='alert'>
                    <h6 class='alert-heading'>Payment Terms</h6>
                    <p class='mb-0'>Payment is due within 30 days. Late payments may incur a 1.5% monthly interest charge. Thank you for your business!</p>
                </div>
            </div>
        </div>

        <div class='row border-top pt-3'>
            <div class='col-12 text-center text-muted'>
                <small>TechStore Inc. | Tax ID: 12-3456789 | All prices in USD</small>
            </div>
        </div>
    </div>
</body>
</html>"

' Render PDF with optimized settings
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapInvoice)

' Add metadata for document management
pdf.MetaData.Title = "Invoice INV-2024-1089"
pdf.MetaData.Author = "TechStore Inc."
pdf.MetaData.Subject = "Sales Invoice"
pdf.MetaData.Keywords = "invoice, payment, e-commerce"

' Save the invoice
pdf.SaveAs("invoice-with-bootstrap.pdf")
$vbLabelText   $csharpLabel

Fonctionnalités clés de Bootstrap démontrées :

  • Système de grille : classes row et col-* pour une structure de mise en page réactive
  • Typographie : display-4, text-muted, h5 pour la mise en forme hiérarchique du texte
  • Tableaux : table, table-primary, table-hover pour l'affichage des données structurées
  • Cartes : card et card-body pour la section des totaux avec style d'arrière-plan
  • Badges : badge bg-success pour les indicateurs d'état de paiement
  • Alertes : alert alert-info pour la notification des conditions de paiement
  • Utilitaires : text-end, text-center, mb-*, pb-* utilitaires d'espacement
  • Style personnalisé : combiné aux classes Bootstrap pour une mise en page spécifique aux factures

Le moteur Chromium d'IronPDF garantit un rendu parfait des composants Bootstrap :

  • Système de grille : classes row et col-* pour la mise en page réactive
  • Typographie : display-4, text-muted, h5 pour la mise en forme hiérarchique
  • Tables : table, table-primary, table-hover pour les données structurées
  • Cartes : card et card-body pour les sections stylisées
  • Badges : badge bg-success pour les indicateurs d'état
  • Alertes : alert alert-info pour les notifications
  • Utilitaires : text-end, text-center, utilitaires d'espacement
  • Style personnalisé : combiné à Bootstrap pour la conception des factures

Pour les polices web et les icônes ,IronPDF offre une prise en charge complète de la typographie personnalisée. Lors du dépannage des mises en page Bootstrap, reportez-vous à la section Dépannage CSS Flex de Bootstrap . Pour les paramètres de fenêtre d'affichage et de Zoom , une configuration appropriée garantit un rendu correct des mises en page réactives.

Quelles sont les limitations de ComPDFKit avec Bootstrap ?

La conversion HTML en PDF de ComPDFKit repose sur des appels API externes plutôt que sur un rendu intégré. Bien que cette approche permette de gérer le style Bootstrap de base, elle présente plusieurs limitations :

  • Dépendance réseau : nécessite des requêtes HTTP vers des services externes
  • Prise en charge des frameworks CSS : Peut ne pas prendre entièrement en charge les mises en page complexes Flexbox ou CSS Grid.
  • Cohérence du rendu : les résultats peuvent varier en fonction de l'implémentation du service API
  • Style personnalisé : contrôle limité sur le rendu des composants Bootstrap
  • Performances : La latence du réseau ajoute une surcharge à la génération de documents

Pour les applications nécessitant un rendu Bootstrap fiable avec un contrôle total sur le style et la mise en page, le rendu natif Chromium fournit des résultats supérieurs. L'approche intégrée d'IronPDF élimine les dépendances externes tout en maintenant une compatibilité totale avec les frameworks CSS.

Comment ajouter un filigrane à un PDF ?

L'ajout d'un filigrane aux PDF permet de protéger l'intégrité des documents, d'affirmer la propriété intellectuelle et de renforcer la sécurité. Les filigranes peuvent être du texte, des logos ou des images apparaissant en arrière-plan ou au premier plan. Ils dissuadent toute utilisation et distribution non autorisées tout en fournissant des informations importantes sur le statut du document ou l'identité de son créateur.

Comment ajouter des filigranes avec IronPDF?

IronPDF permet d'appliquer facilement et par programmation des filigranes aux documents PDF. Cette fonctionnalité s'intègre à la bibliothèque, permettant aux développeurs d'appliquer des filigranes à l'aide de code C#. Pour le placement en arrière-plan et au premier plan ,IronPDF offre des options de positionnement flexibles.

using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Code";

        string watermarkHtml = @"
            <img style='width: 500px;' src='C:\Users\Tayyab Ali\Desktop\watermark.png'>
            <h1>IronPDF Watermark</h1>";

        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>It's a PDF with a watermark</h1>");
        // Apply watermark with 30 degrees rotation and 50% opacity
        pdf.ApplyWatermark(watermarkHtml, rotation: 30, opacity: 50);
        pdf.SaveAs("Confidential.pdf");
    }
}
using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Code";

        string watermarkHtml = @"
            <img style='width: 500px;' src='C:\Users\Tayyab Ali\Desktop\watermark.png'>
            <h1>IronPDF Watermark</h1>";

        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>It's a PDF with a watermark</h1>");
        // Apply watermark with 30 degrees rotation and 50% opacity
        pdf.ApplyWatermark(watermarkHtml, rotation: 30, opacity: 50);
        pdf.SaveAs("Confidential.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Editing

Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "License-Code"

		Dim watermarkHtml As String = "
            <img style='width: 500px;' src='C:\Users\Tayyab Ali\Desktop\watermark.png'>
            <h1>IronPDF Watermark</h1>"

		Dim renderer As New ChromePdfRenderer()
		Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>It's a PDF with a watermark</h1>")
		' Apply watermark with 30 degrees rotation and 50% opacity
		pdf.ApplyWatermark(watermarkHtml, rotation:= 30, opacity:= 50)
		pdf.SaveAs("Confidential.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Page PDF montrant un filigrane rouge " CONFIDENTIEL " et le texte gris " IronPDF Watermark " en bas à gauche, illustrant les possibilités d'application de filigrane.

Cet exemple utilise ChromePdfRenderer pour créer un PDF à partir de HTML. La méthode ApplyWatermark applique un filigrane contenant une image et un titre. La rotation est fixée à 30 degrés avec une opacité de 50 %, assurant la visibilité sans masquer le contenu. Le fichier PDF généré est enregistré à l'emplacement spécifié.

Quelles sont les options de tatouage numérique avancées existantes ?

IronPDF offre des fonctionnalités complètes de tatouage numérique :

  • Filigranes HTML : Utilisez du HTML/CSS complet pour les designs complexes.
  • Contrôle de positionnement : système de placement sur grille 3x3
  • Paramètres d'opacité : Ajustez précisément les niveaux de transparence
  • Options de rotation : Appliquez n'importe quel angle pour les filigranes diagonaux
  • Sélection de pages : Appliquer à toutes les pages ou à des plages spécifiques
  • Plusieurs filigranes : Superposez différents filigranes selon vos besoins

Pour les techniques avancées, voir l'estampage de texte et d'images ou l'ajout efficace de plusieurs tampons . Le nouveau guide de contenu sur l'estampillage illustre la génération dynamique de filigranes.

Comment ajouter des filigranes avec ComPDFKit  ?

ComPDFKit offre la possibilité d'ajouter des filigranes par programmation grâce aux méthodes de la bibliothèque. Cet exemple de code illustre l'ajout d'un filigrane de texte :

static private bool AddTextWatermark(CPDFDocument document)
{
    CPDFWatermark watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
    watermark.SetText("test");
    watermark.SetFontName("Helvetica"); 
    watermark.SetPages("0-3");
    byte[] color = { 255, 0, 0 };
    watermark.SetTextRGBColor(color);
    watermark.SetScale(2);
    watermark.SetRotation(0);
    watermark.SetOpacity(120);
    watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
    watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
    watermark.SetVertOffset(0);
    watermark.SetHorizOffset(0);
    watermark.SetFront(true);
    watermark.SetFullScreen(true);
    watermark.SetVerticalSpacing(10);
    watermark.SetHorizontalSpacing(10);
    watermark.CreateWatermark();
    string path = "AddTextWatermarkTest.pdf";
    if (!document.WriteToFilePath(path))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + path);
    return true;
}

CPDFDocument document = CPDFDocument.InitWithFilePath("SamplePDF.pdf");
if (AddTextWatermark(document))
{
    Console.WriteLine("Add text watermark done.");
}
else
{
    Console.WriteLine("Add text watermark failed.");
}
static private bool AddTextWatermark(CPDFDocument document)
{
    CPDFWatermark watermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT);
    watermark.SetText("test");
    watermark.SetFontName("Helvetica"); 
    watermark.SetPages("0-3");
    byte[] color = { 255, 0, 0 };
    watermark.SetTextRGBColor(color);
    watermark.SetScale(2);
    watermark.SetRotation(0);
    watermark.SetOpacity(120);
    watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER);
    watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER);
    watermark.SetVertOffset(0);
    watermark.SetHorizOffset(0);
    watermark.SetFront(true);
    watermark.SetFullScreen(true);
    watermark.SetVerticalSpacing(10);
    watermark.SetHorizontalSpacing(10);
    watermark.CreateWatermark();
    string path = "AddTextWatermarkTest.pdf";
    if (!document.WriteToFilePath(path))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + path);
    return true;
}

CPDFDocument document = CPDFDocument.InitWithFilePath("SamplePDF.pdf");
if (AddTextWatermark(document))
{
    Console.WriteLine("Add text watermark done.");
}
else
{
    Console.WriteLine("Add text watermark failed.");
}
Private Shared Function AddTextWatermark(ByVal document As CPDFDocument) As Boolean
	Dim watermark As CPDFWatermark = document.InitWatermark(C_Watermark_Type.WATERMARK_TYPE_TEXT)
	watermark.SetText("test")
	watermark.SetFontName("Helvetica")
	watermark.SetPages("0-3")
	Dim color() As Byte = { 255, 0, 0 }
	watermark.SetTextRGBColor(color)
	watermark.SetScale(2)
	watermark.SetRotation(0)
	watermark.SetOpacity(120)
	watermark.SetVertalign(C_Watermark_Vertalign.WATERMARK_VERTALIGN_CENTER)
	watermark.SetHorizalign(C_Watermark_Horizalign.WATERMARK_HORIZALIGN_CENTER)
	watermark.SetVertOffset(0)
	watermark.SetHorizOffset(0)
	watermark.SetFront(True)
	watermark.SetFullScreen(True)
	watermark.SetVerticalSpacing(10)
	watermark.SetHorizontalSpacing(10)
	watermark.CreateWatermark()
	Dim path As String = "AddTextWatermarkTest.pdf"
	If Not document.WriteToFilePath(path) Then
		Return False
	End If
	Console.WriteLine("Browse the changed file in " & path)
	Return True
End Function

Private document As CPDFDocument = CPDFDocument.InitWithFilePath("SamplePDF.pdf")
If AddTextWatermark(document) Then
	Console.WriteLine("Add text watermark done.")
Else
	Console.WriteLine("Add text watermark failed.")
End If
$vbLabelText   $csharpLabel

Page PDF avec le texte en filigrane " test " répété en rouge et un logo ComPDFKit avec l'étiquette " Page 1 " au centre, montrant le résultat du filigrane ComPDFKit.

Cet exemple ouvre un fichier PDF existant à l'aide de CPDFDocument. La méthode AddTextWatermark initialise un filigrane de texte, en définissant des propriétés telles que le contenu du texte, la police, la couleur, l'échelle, la rotation, l'opacité, l'alignement et l'espacement. Le filigrane s'applique aux pages spécifiées et est enregistré dans le chemin défini. Différentes méthodes sont nécessaires pour les filigranes d'images, ce qui complexifie la mise en œuvre.

Comment créer des documents conformes à la norme PDF/A ?

Le PDF/A est une version standardisée du PDF conçue pour la conservation numérique à long terme. Garantir la conformité au format PDF/A assure un affichage et une reproduction fiables à l'avenir. Cette section explore la création de documents conformes à la norme PDF/A en utilisant les deux bibliothèques.

CommentIronPDF crée-t-il des documents PDF/A ?

IronPDF simplifie la conversion des PDF standard en formats conformes à la norme PDF/A. La bibliothèque prend en charge différentes normes PDF/A, notamment PDF/A-1, PDF/A-2 et PDF/A-3. Pour plus d'informations sur les mises à jour majeures de PDF/A et sur la prise en charge de PDF/A-3 avec ZUGFeRD , consultez les annonces de produits.

using IronPdf;
using System;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        PdfDocument pdf = PdfDocument.FromFile("Source.pdf");
        pdf.SaveAsPdfA("pdfa-compliant.pdf", PdfAVersions.PdfA3);
    }
}
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        License.LicenseKey = "License-Key";
        PdfDocument pdf = PdfDocument.FromFile("Source.pdf");
        pdf.SaveAsPdfA("pdfa-compliant.pdf", PdfAVersions.PdfA3);
    }
}
Imports IronPdf
Imports System

Friend Class Program
	Shared Sub Main()
		License.LicenseKey = "License-Key"
		Dim pdf As PdfDocument = PdfDocument.FromFile("Source.pdf")
		pdf.SaveAsPdfA("pdfa-compliant.pdf", PdfAVersions.PdfA3)
	End Sub
End Class
$vbLabelText   $csharpLabel

Le processus implique :

  1. Initialiser IronPDF: Commencez par importer la bibliothèqueIronPDF et définir votre clé de licence.
  2. Charger le PDF : Utilisez PdfDocument.FromFile pour charger votre fichier PDF source.
  3. Convertir et enregistrer : Convertissez le PDF chargé en PDF/A en spécifiant la version PDF/A souhaitée et en enregistrant le document résultant.

Pourquoi choisir le format PDF/A pour l'archivage de documents ?

Le format PDF/A offre plusieurs avantages pour la conservation à long terme :

  • Documents autonomes : Toutes les polices et ressources sont intégrées.
  • Aucune dépendance externe : Élimine la dépendance à un contenu externe
  • Format normalisé : certifié ISO pour l'archivage
  • Préservation des métadonnées : Maintient les propriétés du document
  • Reproductibilité visuelle : Garantit une apparence constante dans le temps

IronPDF prend également en charge le format PDF/UA pour répondre aux exigences d'accessibilité, garantissant ainsi que les documents respectent les normes de conformité de la section 508.

Comment ComPDFKit crée-t-il des documents PDF/A ?

ComPDFKit assure une conversion PDF/A fiable grâce à l'initialisation du document, la définition du chemin de sortie et l'appel de la méthode de conversion.

static public bool CovertToPDFA1a(CPDFDocument document)
{
    string convertToPDFA1aPath = "ConvertToPDFA1aTest.pdf";
    if (!document.WritePDFAToFilePath(CPDFType.CPDFTypePDFA1a, convertToPDFA1aPath))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + convertToPDFA1aPath);
    return true;
}

CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
if (CovertToPDFA1a(document))
{
    Console.WriteLine("Convert to PDF/A-1a done.");
}
else
{
    Console.WriteLine("Convert to PDF/A-1a failed.");
}
static public bool CovertToPDFA1a(CPDFDocument document)
{
    string convertToPDFA1aPath = "ConvertToPDFA1aTest.pdf";
    if (!document.WritePDFAToFilePath(CPDFType.CPDFTypePDFA1a, convertToPDFA1aPath))
    {
        return false;
    }
    Console.WriteLine("Browse the changed file in " + convertToPDFA1aPath);
    return true;
}

CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");
if (CovertToPDFA1a(document))
{
    Console.WriteLine("Convert to PDF/A-1a done.");
}
else
{
    Console.WriteLine("Convert to PDF/A-1a failed.");
}
Public Shared Function CovertToPDFA1a(ByVal document As CPDFDocument) As Boolean
	Dim convertToPDFA1aPath As String = "ConvertToPDFA1aTest.pdf"
	If Not document.WritePDFAToFilePath(CPDFType.CPDFTypePDFA1a, convertToPDFA1aPath) Then
		Return False
	End If
	Console.WriteLine("Browse the changed file in " & convertToPDFA1aPath)
	Return True
End Function

Private document As CPDFDocument = CPDFDocument.InitWithFilePath("CommonFivePage.pdf")
If CovertToPDFA1a(document) Then
	Console.WriteLine("Convert to PDF/A-1a done.")
Else
	Console.WriteLine("Convert to PDF/A-1a failed.")
End If
$vbLabelText   $csharpLabel

Les étapes incluent :

  1. Initialiser le document : charger le document PDF à l'aide de CPDFDocument.InitWithFilePath .
  2. Configurer le répertoire de sortie : assurez-vous que le répertoire de sortie existe ou créez-le si nécessaire.
  3. Conversion au format PDF/A : Utilisez WritePDFAToFilePath avec le type PDF/A spécifié pour effectuer la conversion et enregistrer le fichier.

Comment ajouter des signatures numériques à des fichiers PDF ?

Les signatures numériques vérifient l'authenticité et l'intégrité des documents. Cette section montre comment ajouter des signatures numériques en utilisant les deux bibliothèques. Pour une mise en œuvre complète de la signature numérique ,IronPDF fournit une documentation exhaustive.

Comment signer des PDF avec IronPDF?

IronPDF propose une application de signature numérique simple et efficace. La bibliothèque prend en charge les certificats X.509 et l'intégration HSM pour répondre aux exigences de sécurité des Enterprise .

using IronPdf;
using IronPdf.Signing;

class Program
{
    static void Main(string[] args)
    {
        var simpleSignature = new PdfSignature("MyCert.p12", "newpassword");
        simpleSignature.SignPdfFile("sample.pdf");
    }
}
using IronPdf;
using IronPdf.Signing;

class Program
{
    static void Main(string[] args)
    {
        var simpleSignature = new PdfSignature("MyCert.p12", "newpassword");
        simpleSignature.SignPdfFile("sample.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Signing

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		Dim simpleSignature = New PdfSignature("MyCert.p12", "newpassword")
		simpleSignature.SignPdfFile("sample.pdf")
	End Sub
End Class
$vbLabelText   $csharpLabel

Le processus implique :

  1. Initialiser IronPDF: Importer les bibliothèquesIronPDF nécessaires.
  2. Créer une signature : initialisez un objet PdfSignature avec le fichier de certificat et le mot de passe.
  3. Signer le PDF : Appliquez la signature au PDF à l'aide de SignPdfFile .

Quelles sont les options de signature avancées proposées par IronPDF  ?

IronPDF offre des fonctionnalités complètes de signature numérique :

  • Plusieurs types de signatures : signatures par certificat, visuelles et par formulaire
  • Prise en charge HSM : Intégration du module de sécurité matériel
  • Serveur d'horodatage : Ajouter des horodatages fiables aux signatures
  • Apparence de la signature : Personnaliser la représentation visuelle de la signature
  • Assistance à la validation : Vérifier les signatures existantes par programmation
  • Gestion des révisions : Conserver l'historique des révisions de la signature

Pour résoudre les problèmes de signature, consultez le guide de dépannage des signatures numériques .

Comment signer des PDF avec ComPDFKit  ?

ComPDFKit offre une solution complète de création de signatures numériques avec de nombreuses options de personnalisation.

private static void CreateDigitalSignature(CPDFDocument document, string certificatePath, string password)
{
    Console.WriteLine("--------------------");
    Console.WriteLine("Create digital signature.");
    CPDFSignatureCertificate certificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path("Certificate.pfx", "ComPDFKit");
    CPDFPage page = document.PageAtIndex(0);
    CPDFSignatureWidget signatureField = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
    signatureField.SetRect(new CRect(28, 420, 150, 370));
    signatureField.SetWidgetBorderRGBColor(new byte[] { 0, 0, 0 });
    signatureField.SetWidgetBgRGBColor(new byte[] { 150, 180, 210 });
    signatureField.UpdateAp();
    string name = GetGrantorFromDictionary(certificate.SubjectDict) + "\n";
    string date = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
    string reason = "I am the owner of the document.";
    string location = certificate.SubjectDict["C"];
    string DN = certificate.Subject;

    CPDFSignatureConfig signatureConfig = new CPDFSignatureConfig
    {
        Text = GetGrantorFromDictionary(certificate.SubjectDict),
        Content =
            "Name: " + name + "\n" +
            "Date: " + date + "\n" +
            "Reason: " + reason + " \n" +
            "Location: " + location + "\n" +
            "DN: " + DN + "\n",
        IsContentAlignLeft = false,
        IsDrawLogo = true,
        LogoBitmap = new Bitmap("Logo.png"),
        TextColor = new float[] { 0, 0, 0 },
        ContentColor = new float[] { 0, 0, 0 }
    };
    string filePath = document.FileName + "_Signed.pdf";
    signatureField.UpdataApWithSignature(signatureConfig);
    if (document.WriteSignatureToFilePath(signatureField,
        filePath,
        certificatePath, password,
        location,
        reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone))
    {
        Console.WriteLine("File saved in " + filePath);
        Console.WriteLine("Create digital signature done.");
    }
    else
    {
        Console.WriteLine("Create digital signature failed.");
    }
    Console.WriteLine("--------------------");
}
private static void CreateDigitalSignature(CPDFDocument document, string certificatePath, string password)
{
    Console.WriteLine("--------------------");
    Console.WriteLine("Create digital signature.");
    CPDFSignatureCertificate certificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path("Certificate.pfx", "ComPDFKit");
    CPDFPage page = document.PageAtIndex(0);
    CPDFSignatureWidget signatureField = page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS) as CPDFSignatureWidget;
    signatureField.SetRect(new CRect(28, 420, 150, 370));
    signatureField.SetWidgetBorderRGBColor(new byte[] { 0, 0, 0 });
    signatureField.SetWidgetBgRGBColor(new byte[] { 150, 180, 210 });
    signatureField.UpdateAp();
    string name = GetGrantorFromDictionary(certificate.SubjectDict) + "\n";
    string date = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss");
    string reason = "I am the owner of the document.";
    string location = certificate.SubjectDict["C"];
    string DN = certificate.Subject;

    CPDFSignatureConfig signatureConfig = new CPDFSignatureConfig
    {
        Text = GetGrantorFromDictionary(certificate.SubjectDict),
        Content =
            "Name: " + name + "\n" +
            "Date: " + date + "\n" +
            "Reason: " + reason + " \n" +
            "Location: " + location + "\n" +
            "DN: " + DN + "\n",
        IsContentAlignLeft = false,
        IsDrawLogo = true,
        LogoBitmap = new Bitmap("Logo.png"),
        TextColor = new float[] { 0, 0, 0 },
        ContentColor = new float[] { 0, 0, 0 }
    };
    string filePath = document.FileName + "_Signed.pdf";
    signatureField.UpdataApWithSignature(signatureConfig);
    if (document.WriteSignatureToFilePath(signatureField,
        filePath,
        certificatePath, password,
        location,
        reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone))
    {
        Console.WriteLine("File saved in " + filePath);
        Console.WriteLine("Create digital signature done.");
    }
    else
    {
        Console.WriteLine("Create digital signature failed.");
    }
    Console.WriteLine("--------------------");
}
Imports Microsoft.VisualBasic

Private Shared Sub CreateDigitalSignature(ByVal document As CPDFDocument, ByVal certificatePath As String, ByVal password As String)
	Console.WriteLine("--------------------")
	Console.WriteLine("Create digital signature.")
	Dim certificate As CPDFSignatureCertificate = CPDFPKCS12CertHelper.GetCertificateWithPKCS12Path("Certificate.pfx", "ComPDFKit")
	Dim page As CPDFPage = document.PageAtIndex(0)
	Dim signatureField As CPDFSignatureWidget = TryCast(page.CreateWidget(C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS), CPDFSignatureWidget)
	signatureField.SetRect(New CRect(28, 420, 150, 370))
	signatureField.SetWidgetBorderRGBColor(New Byte() { 0, 0, 0 })
	signatureField.SetWidgetBgRGBColor(New Byte() { 150, 180, 210 })
	signatureField.UpdateAp()
	Dim name As String = GetGrantorFromDictionary(certificate.SubjectDict) & vbLf
	Dim [date] As String = DateTime.Now.ToString("yyyy.MM.dd HH:mm:ss")
	Dim reason As String = "I am the owner of the document."
	Dim location As String = certificate.SubjectDict("C")
	Dim DN As String = certificate.Subject

	Dim signatureConfig As New CPDFSignatureConfig With {
		.Text = GetGrantorFromDictionary(certificate.SubjectDict),
		.Content = "Name: " & name & vbLf & "Date: " & [date] & vbLf & "Reason: " & reason & " " & vbLf & "Location: " & location & vbLf & "DN: " & DN & vbLf,
		.IsContentAlignLeft = False,
		.IsDrawLogo = True,
		.LogoBitmap = New Bitmap("Logo.png"),
		.TextColor = New Single() { 0, 0, 0 },
		.ContentColor = New Single() { 0, 0, 0 }
	}
	Dim filePath As String = document.FileName & "_Signed.pdf"
	signatureField.UpdataApWithSignature(signatureConfig)
	If document.WriteSignatureToFilePath(signatureField, filePath, certificatePath, password, location, reason, CPDFSignaturePermissions.CPDFSignaturePermissionsNone) Then
		Console.WriteLine("File saved in " & filePath)
		Console.WriteLine("Create digital signature done.")
	Else
		Console.WriteLine("Create digital signature failed.")
	End If
	Console.WriteLine("--------------------")
End Sub
$vbLabelText   $csharpLabel

Les étapes incluent :

  1. Initialiser le document et le certificat : charger le document PDF et récupérer le certificat à l'aide de CPDFPKCS12CertHelper .
  2. Créer et configurer le champ de signature : ajoutez un champ de signature au PDF, définissez ses propriétés et configurez les détails de la signature.
  3. Appliquer la signature : Utilisez WriteSignatureToFilePath pour appliquer la signature et enregistrer le PDF signé.

Comment extraire du texte d'un fichier PDF?

L'extraction de texte à partir de documents PDF s'avère cruciale pour le traitement et l'analyse des données. Cette section explique l'extraction de texte à l'aide des deux bibliothèques.

CommentIronPDF extrait-il le texte ?

IronPDF permet une extraction de texte simple à partir de documents PDF. La bibliothèque propose des méthodes pour extraire tout le texte ou le contenu d'une page spécifique. Pour l'analyse du contenu PDF ,IronPDF prend en charge l'extraction structurée. Lors de l'accès aux objets DOM PDF , les développeurs peuvent récupérer des informations détaillées sur le contenu.

using IronPdf;
using System.IO;

PdfDocument pdf = PdfDocument.FromFile("PDF File With Text.pdf");
string text = pdf.ExtractAllText();
File.WriteAllText("PDF Text.txt", text);
using IronPdf;
using System.IO;

PdfDocument pdf = PdfDocument.FromFile("PDF File With Text.pdf");
string text = pdf.ExtractAllText();
File.WriteAllText("PDF Text.txt", text);
Imports IronPdf
Imports System.IO

Private pdf As PdfDocument = PdfDocument.FromFile("PDF File With Text.pdf")
Private text As String = pdf.ExtractAllText()
File.WriteAllText("PDF Text.txt", text)
$vbLabelText   $csharpLabel

Le processus implique :

  1. Initialiser IronPDF: Importer la bibliothèqueIronPDF.
  2. Charger le PDF : Utilisez PdfDocument.FromFile pour charger le fichier PDF.
  3. Extraction de texte : Appelez ExtractAllText pour récupérer tout le contenu textuel du PDF.
  4. Enregistrer le texte dans un fichier : Écrire le texte extrait dans un fichier en utilisant les opérations d'entrée/sortie de fichiers standard.

Quelles sont les fonctionnalités avancées d'extraction de texte disponibles ?

IronPDF offre des fonctionnalités sophistiquées d'extraction de texte :

  • Extraction spécifique à la page : Extraire le texte de pages individuelles
  • Contenu structuré : Accédez au texte avec des informations de mise en forme
  • Rechercher et remplacer : Trouver et remplacer du texte dans les fichiers PDF
  • Prise en charge des expressions régulières : extraction de texte basée sur des modèles
  • Extraction basée sur les coordonnées : extraire du texte de régions spécifiques
  • Prise en charge des langues : Gestion des caractères UTF-8 et internationaux

Pour des exemples complets de lecture de texte, consultez le guide de lecture PDF .

Comment ComPDFKit extrait-il le texte ?

ComPDFKit permet une extraction de texte flexible à partir de documents PDF.

static private bool PDFToText(CPDFDocument document)
{
    string path = "//PDFToText.txt";
    if (!document.PdfToText("1-" + document.PageCount.ToString(), path))//Page ranges are counted from 1
    {
        return false;
    }
    Console.WriteLine("Browse the generated file in " + path);
    return true;
}

static void Main(string[] args)
{
    Console.WriteLine("Running PDFPage test sample…\r\n");
    SDKLicenseHelper.LicenseVerify();
    CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");

    if (PDFToText(document))
    {
        Console.WriteLine("PDF to text done.");
    }
    else
    {
        Console.WriteLine("PDF to text failed.");
    }
    Console.WriteLine("--------------------");
    Console.WriteLine("Done!");
    Console.WriteLine("--------------------");
    Console.ReadLine();
}
static private bool PDFToText(CPDFDocument document)
{
    string path = "//PDFToText.txt";
    if (!document.PdfToText("1-" + document.PageCount.ToString(), path))//Page ranges are counted from 1
    {
        return false;
    }
    Console.WriteLine("Browse the generated file in " + path);
    return true;
}

static void Main(string[] args)
{
    Console.WriteLine("Running PDFPage test sample…\r\n");
    SDKLicenseHelper.LicenseVerify();
    CPDFDocument document = CPDFDocument.InitWithFilePath("CommonFivePage.pdf");

    if (PDFToText(document))
    {
        Console.WriteLine("PDF to text done.");
    }
    else
    {
        Console.WriteLine("PDF to text failed.");
    }
    Console.WriteLine("--------------------");
    Console.WriteLine("Done!");
    Console.WriteLine("--------------------");
    Console.ReadLine();
}
Imports Microsoft.VisualBasic

Private Shared Function PDFToText(ByVal document As CPDFDocument) As Boolean
	Dim path As String = "//PDFToText.txt"
	If Not document.PdfToText("1-" & document.PageCount.ToString(), path) Then 'Page ranges are counted from 1
		Return False
	End If
	Console.WriteLine("Browse the generated file in " & path)
	Return True
End Function

Shared Sub Main(ByVal args() As String)
	Console.WriteLine("Running PDFPage test sample…" & vbCrLf)
	SDKLicenseHelper.LicenseVerify()
	Dim document As CPDFDocument = CPDFDocument.InitWithFilePath("CommonFivePage.pdf")

	If PDFToText(document) Then
		Console.WriteLine("PDF to text done.")
	Else
		Console.WriteLine("PDF to text failed.")
	End If
	Console.WriteLine("--------------------")
	Console.WriteLine("Done!")
	Console.WriteLine("--------------------")
	Console.ReadLine()
End Sub
$vbLabelText   $csharpLabel

Les étapes sont :

  1. Initialiser le document : charger le document PDF à l'aide de CPDFDocument.InitWithFilePath .
  2. Extraire et enregistrer du texte : utilisez PdfToText pour extraire le texte de la plage de pages spécifiée et l'enregistrer dans un fichier.

Scénarios de cas d'utilisation réels

Comprendre quand utiliser chaque bibliothèque aide les développeurs à prendre des décisions éclairées en fonction des exigences du projet. Ces scénarios illustrent des applications pratiques dans lesquelles chaque bibliothèque excelle.

Quand devrais-je choisir IronPDF?

Système de génération de documents Enterprise Une société de services financiers doit générer plus de 50 000 relevés mensuels avec des mises en page complexes, des graphiques et des exigences de conformité réglementaire.

Avantages IronPDF  :

Plateforme de génération de factures SaaS Une plateforme SaaS mutualisée générant des factures personnalisées pour des milliers de clients grâce à des modèles sur mesure.

Avantages IronPDF  :

  • Prise en charge HTML/CSS : Compatibilité Bootstrap complète pour les modèles personnalisés
  • Performances : Déploiement Docker pour une architecture évolutive
  • Personnalisation : En-têtes/pieds de page et filigranes pour la marque
  • Conception d'API : Une API simple réduit le temps de développement
  • Prêt pour le cloud : Prise en charge native d'Azure et d'AWS

Quand devrais-je envisager ComPDFKit  ?

Application de visionneuse PDF basique Une application de bureau nécessitant la visualisation de fichiers PDF et des fonctionnalités d'annotation de base, sans conversion HTML.

Avantages de ComPDFKit  :

  • Composant de visualisation : Fonctionnalité de visualisation intégrée
  • Outils d'annotation : Prise en charge native des annotations
  • Intégration simple : Manipulation directe des PDF sans HTML
  • Fonctionnement hors ligne : Aucune dépendance réseau pour les fonctionnalités principales

Système d'archivage de documents Un système interne de gestion documentaire axé sur l'organisation des fichiers PDF et l'édition de base.

Avantages de ComPDFKit  :

  • Manipulation de fichiers : Fonctions avancées de fusion/séparation de fichiers PDF
  • Édition de base : Outils de modification de texte et d'image
  • Approche traditionnelle : Conception d'API familière centrée sur les PDF

Quelles sont les options de licence ?

Les modèles de licenceIronPDF et de ComPDFKit diffèrent dans leur approche et leurs conditions d'utilisation. Comprendre ces différences aide les développeurs à choisir l'outil adapté aux besoins et au budget de leur projet.

Quelles sont les options de licence proposées par IronPDF  ?

IronPDF pricing page showing three license tiers (Lite $749, Plus $1,499, Professional $2,999) with Professional selected, displaying 10 developers/locations/projects coverage and $4,998 total with extended support and upgrade protection.

IronPDF fonctionne selon un modèle de licence commerciale transparent :

Types de licences :

  • Licence Lite (749 $) : 1 développeur, 1 emplacement, 1 projet
  • Licence Plus (1 499 $) : 3 développeurs, 3 sites, 3 projets
  • Licence Professional (2 999 $) : 10 développeurs, 10 sites, 10 projets
  • Enterprise/ OEM : Tarification personnalisée pour un déploiement illimité

Principaux avantages :

  • Licence perpétuelle : Paiement unique pour une utilisation à vie
  • Distribution sans redevances : aucun frais d'exécution
  • Code source disponible : achat optionnel pour les audits de sécurité
  • Mises à niveau flexibles : Extensions et mises à niveau de licence disponibles
  • Période d'essai : Licence d'essai gratuite pour évaluation

Le modèle commercial d'IronPDF garantit aux entreprises un support dédié, une documentation complète et des fonctionnalités avancées pour la génération et la manipulation Professional de PDF. La structure tarifaire transparente élimine les coûts cachés et assure une prévisibilité budgétaire.

Quelles sont les options de licence proposées par ComPDFKit  ?

ComPDFKit utilise un système de licences flexible adapté aux différents besoins des entreprises :

Options de licence :

  • Licence perpétuelle : Paiement unique pour un accès illimité au SDK
  • Licence par abonnement : Paiements réguliers avec mises à jour continues
  • Tarification sur devis : Prix personnalisé en fonction des exigences du projet

Considérations :

  • Coûts variables : Les prix nécessitent un contact direct pour obtenir un devis.
  • Frais de mise à jour : Frais optionnels pour les mises à jour de version
  • Forfaits d'assistance : Exigences relatives aux contrats d'assistance distincts
  • Limites d'utilisation de l'API : Des coûts supplémentaires s'appliquent pour l'API de conversion HTML

Quelle documentation et quel support sont disponibles ?

Quel type de supportIronPDF propose-t-il ?

IronPDF propose une infrastructure de documentation et de support :

Ressources documentaires :

Canaux d'assistance :

  • Support technique disponible 24/5 : Accès direct à l'équipe de développement
  • Délai de réponse : Assistance prioritaire avec des délais de réponse garantis
  • Revue de code : L'équipe d'ingénierie examine les implémentations complexes.
  • Solutions personnalisées : Assistance pour les besoins spécifiques
  • Mises à jour régulières : Mises à jour du produit et fonctionnalités importantes

Pour toute demande d'assistance technique , des directives détaillées garantissent une résolution efficace. L'infrastructure de support comprend une assistance au déploiement pour différentes plateformes.

Quel type de support ComPDFKit fournit-il ?

ComPDFKit fournit une documentation de base et des ressources d'assistance :

Documentation:

  • Guide de démarrage : Instructions d'installation de base
  • Référence API : Documentationde la méthode standard
  • Exemple de code : Exemples limités pour les fonctionnalités principales
  • Documentation de la plateforme : Guides d'intégration de base

Options d'assistance : Assistance par courriel : réponse pendant les heures ouvrables standard

  • Assistance technique : Aide au dépannage de base
  • Forum communautaire : Communauté d'entraide gérée par les utilisateurs

Bien que les deux bibliothèques offrent une documentation et une assistance,IronPDF fournit des ressources beaucoup plus complètes, des temps de réponse plus rapides et une assistance technique directe, éléments essentiels pour les déploiements en production.

Considérations relatives aux performances et à l'optimisation

Les performances ont un impact sur la viabilité du système de production. Comprendre les capacités d'optimisation de chaque bibliothèque aide les architectes à concevoir des solutions efficaces.

CommentIronPDF optimise-t-il les performances ?

IronPDF offre de nombreuses fonctionnalités d'optimisation des performances :

Avantages architecturaux :

  • Moteur Chrome natif : moteur de rendu C++ optimisé
  • Gestion de la mémoire : Traitement efficace des documents volumineux
  • Sécurité des threads : Conçu pour les applications web concurrentes
  • Mise en commun des ressources : instances de rendu réutilisables

Caractéristiques de performance :

Points de repère (génération de documents de 50 pages) :

  • Monothread : 2,3 secondes en moyenne
  • Multithread (8 cœurs) : 0,4 seconde par document
  • Utilisation de la mémoire : pic à 180 Mo
  • Requêtes simultanées : plus de 100 rendus simultanés

Quelles sont les caractéristiques de performance de ComPDFKit  ?

ComPDFKit offre des performances standard pour les opérations de base :

Profil de performance :

  • Traitement synchrone : Opérations bloquantes traditionnelles
  • Utilisation de la mémoire : Consommation plus élevée pour les documents complexes
  • Concurrence : Prise en charge limitée des opérations simultanées
  • Conversion HTML : La latence du réseau ajoute 1 à 3 secondes

Limitations :

  • Aucune prise en charge asynchrone intégrée
  • Documentationsur les threads limitée
  • Les appels d'API engendrent une surcharge réseau
  • La gestion des ressources nécessite une mise en œuvre manuelle

Modèles d'intégration Enterprise

Les systèmes de production nécessitent des modèles architecturaux spécifiques pour garantir leur fiabilité et leur évolutivité. La compréhension des approches d'intégration aide les équipes à mettre en œuvre des solutions fiables.

Comment implémenterIronPDF dans un environnement de microservices ?

IronPDF prend en charge les modèles architecturaux modernes :

Service PDF conteneurisé :

// Dockerfile forIronPDF microservice
FROM mcr.microsoft.com/dotnet/aspnet:6.0
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    libx11-6
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "PdfService.dll"]
// Dockerfile forIronPDF microservice
FROM mcr.microsoft.com/dotnet/aspnet:6.0
RUN apt-get update && apt-get install -y \
    libgdiplus \
    libc6-dev \
    libx11-6
COPY . /app
WORKDIR /app
ENTRYPOINT ["dotnet", "PdfService.dll"]
The provided code is a Dockerfile, not C# code. Dockerfiles are used to define the environment and instructions for building Docker images and are not directly translatable to VB.NET or any programming language. If you have C# code that you need converted to VB.NET, please provide that code, and I will be happy to assist with the conversion.
$vbLabelText   $csharpLabel

Implémentation d'API évolutive :

[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    private readonly ChromePdfRenderer _renderer;

    public PdfController()
    {
        _renderer = new ChromePdfRenderer();
        // Configure for production
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.RenderDelay = 500;
    }

    [HttpPost("generate")]
    public async Task<IActionResult> GeneratePdf([FromBody] PdfRequest request)
    {
        try
        {
            var pdf = await _renderer.RenderHtmlAsPdfAsync(request.Html);

            // Apply security if needed
            if (request.RequirePassword)
            {
                pdf.SecuritySettings.SetPassword(request.Password);
            }

            var stream = pdf.Stream;
            return File(stream, "application/pdf", request.FileName);
        }
        catch (Exception ex)
        {
            // Complèteerror handling
            return StatusCode(500, new { error = ex.Message });
        }
    }
}
[ApiController]
[Route("api/[controller]")]
public class PdfController : ControllerBase
{
    private readonly ChromePdfRenderer _renderer;

    public PdfController()
    {
        _renderer = new ChromePdfRenderer();
        // Configure for production
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.RenderDelay = 500;
    }

    [HttpPost("generate")]
    public async Task<IActionResult> GeneratePdf([FromBody] PdfRequest request)
    {
        try
        {
            var pdf = await _renderer.RenderHtmlAsPdfAsync(request.Html);

            // Apply security if needed
            if (request.RequirePassword)
            {
                pdf.SecuritySettings.SetPassword(request.Password);
            }

            var stream = pdf.Stream;
            return File(stream, "application/pdf", request.FileName);
        }
        catch (Exception ex)
        {
            // Complèteerror handling
            return StatusCode(500, new { error = ex.Message });
        }
    }
}
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("api/[controller]")>
Public Class PdfController
    Inherits ControllerBase

    Private ReadOnly _renderer As ChromePdfRenderer

    Public Sub New()
        _renderer = New ChromePdfRenderer()
        ' Configure for production
        _renderer.RenderingOptions.EnableJavaScript = True
        _renderer.RenderingOptions.RenderDelay = 500
    End Sub

    <HttpPost("generate")>
    Public Async Function GeneratePdf(<FromBody> request As PdfRequest) As Task(Of IActionResult)
        Try
            Dim pdf = Await _renderer.RenderHtmlAsPdfAsync(request.Html)

            ' Apply security if needed
            If request.RequirePassword Then
                pdf.SecuritySettings.SetPassword(request.Password)
            End If

            Dim stream = pdf.Stream
            Return File(stream, "application/pdf", request.FileName)
        Catch ex As Exception
            ' Complete error handling
            Return StatusCode(500, New With {.error = ex.Message})
        End Try
    End Function
End Class
$vbLabelText   $csharpLabel

Avantages:

  • Mise à l'échelle horizontale : Ajoutez des instances selon les besoins
  • Isolation des pannes : Les pannes de service n'ont pas d'impact sur le système
  • Contrôle des ressources : Les limites des conteneurs empêchent l'épuisement des ressources.
  • Flexibilité de déploiement : Compatible avec Kubernetes et Docker Swarm

Qu'en est-il de l'intégration de ComPDFKitEnterprise ?

ComPDFKit nécessite des approches d'intégration traditionnelles :

  • Conception monolithique : Bibliothèque étroitement intégrée à l'application
  • Mise à l'échelle limitée : mise à l'échelle verticale uniquement
  • Partage des ressources : Conflits potentiels dans les scénarios multi-locataires
  • Dépendances API : Les exigences des services externes complexifient l'architecture

Fonctionnalités de sécurité et de conformité

Les applications Enterprise exigent des fonctionnalités de sécurité fiables pour assurer la conformité réglementaire et la protection des données.

CommentIronPDF gère-t-il la sécurité ?

IronPDF offre des fonctionnalités de sécurité complètes :

Options de chiffrement :

  • Chiffrement AES 256 bits : Sécurité de niveau militaire
  • Mots de passe utilisateur/propriétaire : niveaux d'accès distincts
  • Contrôles d'autorisation : Restrictions d'action granulaires
  • Signatures numériques : Authentification par certificat
  • Prise en charge HSM : Intégration du module de sécurité matériel

Caractéristiques de conformité :

Exemple de mise en œuvre :

// Secure document generation
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Apply complete security
pdf.SecuritySettings.SetPassword("user123");
pdf.SecuritySettings.SetOwnerPassword("owner456");
pdf.SecuritySettings.MakePdfDocumentReadOnly();
pdf.SecuritySettings.SetPdfSecuritySettings(
    canPrint: true,
    canCopy: false,
    canModify: false
);

// Add digital signature
var signature = new PdfSignature("cert.pfx", "password");
pdf.SignWithSignature(signature);

// Ensure compliance
pdf.SaveAsPdfA("secure-compliant.pdf", PdfAVersions.PdfA3);
// Secure document generation
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Apply complete security
pdf.SecuritySettings.SetPassword("user123");
pdf.SecuritySettings.SetOwnerPassword("owner456");
pdf.SecuritySettings.MakePdfDocumentReadOnly();
pdf.SecuritySettings.SetPdfSecuritySettings(
    canPrint: true,
    canCopy: false,
    canModify: false
);

// Add digital signature
var signature = new PdfSignature("cert.pfx", "password");
pdf.SignWithSignature(signature);

// Ensure compliance
pdf.SaveAsPdfA("secure-compliant.pdf", PdfAVersions.PdfA3);
' Secure document generation
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

' Apply complete security
pdf.SecuritySettings.SetPassword("user123")
pdf.SecuritySettings.SetOwnerPassword("owner456")
pdf.SecuritySettings.MakePdfDocumentReadOnly()
pdf.SecuritySettings.SetPdfSecuritySettings(
    canPrint:=True,
    canCopy:=False,
    canModify:=False
)

' Add digital signature
Dim signature As New PdfSignature("cert.pfx", "password")
pdf.SignWithSignature(signature)

' Ensure compliance
pdf.SaveAsPdfA("secure-compliant.pdf", PdfAVersions.PdfA3)
$vbLabelText   $csharpLabel

Quelles sont les mesures de sécurité offertes par ComPDFKit  ?

ComPDFKit offre des fonctionnalités de sécurité de base :

  • Protection par mot de passe : Mots de passe de base pour les utilisateurs/propriétaires
  • Chiffrement : Chiffrement PDF standard
  • Autorisations : Paramètres d'autorisation limités
  • Signatures numériques : Signature basée sur un certificat

Cependant, des fonctionnalités avancées telles que la prise en charge HSM, la désinfection et des outils de conformité complets nécessitent une mise en œuvre supplémentaire.

Quelle bibliothèque PDF choisir ?

La comparaison entreIronPDF et ComPDFKit révèle des différences claires selon les cas d'utilisation et les exigences.

PourquoiIronPDF excelle dans les applications Enterprise

IronPDF se distingue comme le choix idéal pour les systèmes de production nécessitant :

Excellence technique :

  • Rendu HTML natif : le moteur Chromium assure une conversion parfaite
  • Performances : Traitement asynchrone/multithread pour les volumes importants de données
  • Fiabilité : Architecture thread-safe pour les applications web
  • Intégration : Une API simple réduit le temps de développement

Valeur commerciale :

  • Coût total de possession : Tarification transparente sans frais cachés
  • Infrastructure de support : Un support technique 24h/24 et 5j/7 minimise les temps d'arrêt.
  • Documentation: Plus de 500 exemples accélèrent le développement
  • Pérenniser l'avenir : Mises à jour régulières et nouvelles fonctionnalités

Commentaires de vrais développeurs : "IronPDF a transformé le système de génération de factures. Les développeurs traitent plus de 100 000 documents par mois sans aucun problème d'affichage. " La prise en charge de Bootstrap a permis de gagner des semaines de développement. " – Architecte .NET senior, entreprise du Fortune 500

" Après avoir évalué plusieurs bibliothèques, les performances et le support d'IronPDF en ont fait le choix évident. Ses capacités asynchrones ont permis de réduire le temps de traitement de 75 %. " – Responsable technique, Services financiers

Quand ComPDFKit peut suffire

ComPDFKit peut convenir pour :

  • Visualisation simple de PDF : Applications de bureau basiques
  • Portée limitée : Projets ne nécessitant pas de conversion HTML
  • Contraintes budgétaires : Quand les coûts des API externes sont acceptables
  • Opérations de base : Exigences simples de fusion/séparation

Recommandation Finale

Pour les développeurs .NET senior qui conçoivent des systèmes de production en privilégiant la performance, la fiabilité et les modèles architecturaux, IronPDF offre une solution complète . Son association de capacités techniques, de fonctionnalités Enterprise et d'une infrastructure de support de qualité supérieure garantit la réussite des projets.

Facteurs clés de décision :

Exigences IronPDF ComPDFKit Gagnant
HTML vers PDF Chrome natif API externe IronPDF
Performance Asynchrone/Multithread Synchrone IronPDF
SupportCSS Bootstrap/Flexbox complet Limité IronPDF
Documentation Plus de 500 exemples Basique IronPDF
Support Ingénierie 24h/24 et 5j/7 Courriel uniquement IronPDF
Fonctionnalités Enterprise Complète Limité IronPDF
Coût total Transparent Variable IronPDF

IronPDF propose une licence d'essai gratuite pour tester la bibliothèque et ses fonctionnalités. Les licencesIronPDF sont disponibles à partir de 749 $. De plus, Iron Software propose neuf bibliothèques pour le prix de deux, dont IronXL et IronOCR en plus d' IronPDF.

Pour les équipes qui ont besoin d'une génération de PDF Professional avec un support Enterprise ,IronPDF offre la solution complète. Son expérience éprouvée auprès des entreprises du Fortune 500, son ensemble complet de fonctionnalités et son engagement envers la réussite des développeurs en font le choix idéal pour les applications .NET exigeantes.

Veuillez noterComPDFKit est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié avec, approuvé par, ou sponsorisé par ComPDFKit. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.

Questions Fréquemment Posées

Comment puis-je convertir HTML en PDF en C# ?

Vous pouvez utiliser la méthode RenderHtmlAsPdf d'IronPDF pour convertir des chaînes HTML en PDF. Cette méthode est adaptée pour convertir HTML, CSS et JavaScript en documents PDF de haute qualité.

Quels sont les avantages d'utiliser une bibliothèque PDF C# ?

Les bibliothèques PDF C# comme IronPDF et ComPDFKit permettent la création, la modification et l'extraction de texte/image des PDF. Elles prennent en charge des fonctionnalités telles que la gestion des formulaires, les signatures numériques et la sécurité, offrant de la flexibilité sur différentes plateformes.

Puis-je ajouter de la sécurité à mes PDF en C# ?

Oui, en using IronPDF, vous pouvez améliorer la sécurité des PDF en définissant des mots de passe, en cryptant les documents et en ajoutant des signatures numériques pour protéger les informations sensibles.

Comment ComPDFKit gère-t-il l'édition et la conversion de PDF ?

ComPDFKit offre des capacités d'édition de PDF robustes et une conversion vers divers formats, y compris PDF/A pour la préservation numérique à long terme, ce qui le rend polyvalent pour les projets multiplateformes.

Quelles options de licence sont disponibles pour les bibliothèques PDF C# ?

IronPDF propose un modèle de licence commerciale avec licences perpétuelles, tandis que ComPDFKit propose à la fois des licences perpétuelles et des abonnements, permettant une flexibilité en fonction des besoins de l'entreprise.

Quels supports et ressources sont disponibles pour les développeurs utilisant ces bibliothèques ?

IronPDF fournit une documentation complète et un support client réactif, le rendant adapté aux applications de niveau entreprise. ComPDFKit offre également une documentation approfondie et un support technique.

Comment IronPDF et ComPDFKit se comparent-ils en termes de conversion HTML en PDF ?

IronPDF excelle dans la conversion HTML en PDF, prenant en charge les chaînes HTML, les URLs, les formulaires web ASPX et les vues MVC, tandis que ComPDFKit propose une gamme plus large de fonctionnalités d'édition et de conversion PDF.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi