Passer au contenu du pied de page
OUTILS PDF

Comment convertir HTML en PDF en Node.js en utilisant Puppeteer

IronPDF surpasse ComPDFKitpour la génération de PDF C# avec un rendu HTML natif basé sur Chromium, un support complet de Bootstrap, une documentation complète et une intégration .NET approfondie.

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 PDF efficace.

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 Disponible via SDK et API
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 $999 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 : ComPDFKitfournit 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 : ComPDFKitoffre 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é : ComPDFKitinclut 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.

Page d'accueil ComPDFKitprésentant leurs solutions complètes SDK PDF pour développeurs avec captures d'écran de fonctionnalités d'annotation et exemples de code démontrant les capacités de manipulation de 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 PDF : Fournit une visionneuse efficace avec défilement fluide, zoom et capacités de navigation
  • 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 : Supporte la conversion de PDF en Word, Excel, PowerPoint et formats d'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, ComPDFKitoffre 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, ComPDFKitprésente plusieurs considérations pour le développement en entreprise :

  • Support CSS : Compatibilité limitée avec les frameworks CSS modernes comparée à un renderer natif Chromium
  • Documentation: Exemples de base sans guides de dépannage complets
  • Complexité d'intégration : Plusieurs packages peuvent être nécessaires pour une fonctionnalité complète

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

Page d'accueil IronPDF montrant l'interface de la bibliothèque PDF C# avec exemple de code pour la conversion HTML en PDF, mettant en avant plus de 10 millions de téléchargements et l'adoption en entreprise à travers 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 choisir IronPDF 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 rend IronPDF 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 fournit l'amélioration de l'IDE 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 essentielle 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.

    IDE Visual Studio montrant le menu Fichier ouvert avec options pour créer de nouveaux projets, ouvrir des fichiers, et gérer des dépôts avec l'option Nouveau Projet mise en évidence.

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

    Dialogue Créer un Nouveau Projet de Visual Studio montrant la sélection de modèle Application Console avec C#, Linux, macOS, Windows, et tags Console mis en évidence pour le développement multiplateforme.

  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égration IronPDF 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 ComPDFKitpour 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 montrant l'installation du package NuGet IronPDF version 2024.5.2 dans un projet Boards de test C# 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 efficacement IronPDF 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 ComPDFKitaux 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 montrant les résultats de recherche ComPDFKitavec trois packages listés : ComPDFKit.NetFramework, ComPDFKit.Conversion.NetFramework, et compdfkit-api-.NET 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écharger le package : Obtenez ComPDFKit.NetFramework.nupkg depuis le site officiel de ComPDFKit.
  2. Configurer la source NuGet : Créez ou modifiez nuget.config dans le répertoire du projet pour inclure le chemin local du package.

    _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 ComPDFKitpour 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 seulement de définir la propriété License.LicenseKey, simplifiant 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 ComPDFKitoffrent tous deux la conversion HTML en PDF, bien que leurs approches diffèrent.IronPDF utilise un moteur de rendu Chromium intégré pour un rendu pixel-parfait, tandis que le moteur de rendu et le support du framework CSS de ComPDFKitdoivent être évalués par rapport aux exigences spécifiques de votre projet.

Comment IronPDF 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

Sortie IronPDF montrant un PDF simple avec l'en-tête 'Hello, IronPDF!' et texte descriptif démontrant les capacités de conversion HTML en PDF basiques.

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 ComPDFKitgère-t-il la conversion HTML vers PDF ?

La bibliothèque .NET de ComPDFKitinclut la conversion HTML en PDF dans son ensemble de fonctionnalités de génération de PDF (en avril 2026). La bibliothèque propose également un service Open API pour le traitement de documents basé sur le cloud. Les développeurs doivent consulter la documentation ComPDFKit pour confirmer les détails d'implémentation actuels et les éventuelles limitations de rendu des frameworks CSS pour leur cas d'utilisation spécifique.

Comment se compare le rendu HTML de ComPDFKit?

Là oùIronPDF utilise un moteur Chromium intégré offrant un rendu pixel-parfait de Bootstrap et CSS3, les capacités de rendu de ComPDFKitet la compatibilité du framework CSS doivent être évaluées par rapport à vos exigences spécifiques de rendu :

  • Moteur de Rendu :IronPDF intègre Chromium, assurant un rendu CSS cross-browser cohérent
  • Support du Framework CSS : Le moteur Chromium d'IronPDF gère nativement Bootstrap 5, Flexbox et CSS Grid
  • Exécution JavaScript : Le moteur d'IronPDF exécute JavaScript pour un rendu de contenu dynamique
  • Traitement Local :IronPDF effectue le rendu entièrement sur site, sans dépendances de service externe

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 intégré d'IronPDF offre un soutien complet à Bootstrap, tandis que les capacités de rendu de ComPDFKitavec les frameworks CSS complexes doivent être évaluées en fonction des exigences spécifiques de projet.

Comment IronPDF gère-t-il le style Bootstrap ?

IronPDF utilise le moteur de rendu de Chromium, fournissant un soutien pixel-parfait à Bootstrap dans 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 le style de texte hiérarchique
  • Tables : table, table-primary, table-hover pour l'affichage des données structurées
  • Cartes : card et card-body pour la section des totaux avec un style de fond
  • Étiquettes : badge bg-success pour les indicateurs de statut 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 une mise en page réactive
  • Typographie : display-4, text-muted, h5 pour le style hiérarchique
  • Tables : table, table-primary, table-hover pour des données structurées
  • Cartes : card et card-body pour des sections stylisées
  • Étiquettes : badge bg-success pour les indicateurs de statut
  • Alerts: alert alert-info for 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 considérations de ComPDFKitavec Bootstrap ?

La conversion HTML en PDF de ComPDFKitn'utilise pas de moteur Chromium intégré, ce qui signifie que les mises en page Bootstrap complexes, le CSS Grid et le rendu Flexbox peuvent produire des résultats différents par rapport à un moteur de navigateur natif :

  • Support des Framework CSS : Le rendu des mises en page Flexbox ou CSS Grid complexes peut varier
  • Consistance du rendu : Les résultats dépendent de l'implémentation du moteur HTML
  • Style personnalisé : La fidélité du rendu des composants Bootstrap doit être testée en fonction des exigences du projet

Pour les applications nécessitant un rendu Bootstrap fiable avec un contrôle total sur le style et la mise en page, le moteur Chromium intégré d'IronPDF offre des résultats cohérents. L'approche intégrée d'IronPDF maintient une compatibilité complète avec le framework CSS sans dépendre de services de rendu externes.

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 tampon de filigrane rouge 'CONFIDENTIEL' et un texte gris 'Filigrane IronPDF' en bas à gauche démontrant les capacité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 du positionnement : Système de placement en 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 un texte de filigrane répété 'test' en rouge et un logo ComPDFKitavec l'étiquette 'Page1' au centre montrant la sortie de filigrane de ComPDFKit.

Cet exemple ouvre un fichier PDF existant à l'aide de CPDFDocument. La méthode AddTextWatermark initialise un filigrane de texte, 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.

Comment IronPDF 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èque IronPDF 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 ComPDFKitcré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èques IronPDF 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.

Comment IronPDF 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èque IronPDF.
  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 ComPDFKitextrait-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 licence IronPDF et de ComPDFKitdiffè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 $999, 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 ($999) : 1 développeur, 1 emplacement, 1 projet
  • Licence Plus ($1,499) : 3 développeurs, 3 emplacements, 3 projets
  • Licence Professional ($2,399) : 10 développeurs, 10 emplacements, 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 d'API : Des coûts supplémentaires peuvent s'appliquer pour le traitement basé sur l'API cloud

Quelle documentation et quel support sont disponibles ?

Quel type de support IronPDF propose-t-il ?

IronPDF offre 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 ComPDFKitfournit-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.

Comment IronPDF 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 :

Quelles sont les caractéristiques de performance de ComPDFKit ?

ComPDFKit fournit des performances standard pour les opérations PDF courantes :

Profil de performance :

  • Utilisation de la mémoire : La consommation de ressources varie selon la complexité du document
  • Concurrence : Consultez la documentation de ComPDFKitpour des conseils sur l'async et le threading
  • Multi-plateforme : Disponible sur Windows, Linux, macOS, Docker, Azure et AWS

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émenter IronPDF dans un environnement de microservices ?

IronPDF prend en charge les modèles architecturaux modernes :

Service PDF conteneurisé :

// Dockerfile for IronPDF 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 for IronPDF 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 for IronPDF 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"]
$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 prend en charge l'intégration dans les applications côté serveur et est disponible sur les environnements Windows, Linux, macOS, Docker, Azure et AWS. Les développeurs devraient consulter la documentation de ComPDFKit pour des conseils spécifiques sur les déploiements multi-tenant, les stratégies de montée en charge et les architectures conteneurisées.

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.

Comment IronPDF 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

Pour des fonctionnalités avancées comme le support HSM, la désinfection et des outils de conformité d'accessibilité complète, consultez la documentation de ComPDFKitpour vérifier la disponibilité actuelle.

Quelle bibliothèque PDF choisir ?

La comparaison entre IronPDF et ComPDFKitrévèle des différences claires selon les cas d'utilisation et les exigences.

Pourquoi IronPDF 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

IronPDF est approuvé par les équipes de développement des entreprises du Fortune 500 pour les volumes élevés de charges de travail de génération de documents nécessitant un rendu fiable de Bootstrap, un traitement asynchrone et un support entreprise.

Quand ComPDFKitpeut 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 : Lorsque le modèle de tarification basé sur des devis correspond au modèle budgétaire
  • 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 licences IronPDF commencent à partir de $999. De plus, Iron Software propose neuf bibliothèques pour le prix de deux, y compris IronXL et IronOCR avec 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 historique prouvé avec les entreprises du Fortune 500, l'ensemble complet de fonctionnalités et le dévouement au succès des développeurs en font le choix amélioré pour les applications .NET sérieuses.

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, avec 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