Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

IronPDF vs PDFShift : Comparaison des API C# HTML vers PDF

IronPDF propose une bibliothèque C# locale fiable avec une licence perpétuelle à partir de 749 $, tandis que PDFShift fournit une API cloud avec une tarification au paiement par conversion. Pour les startups traitant plus de 500 PDF par mois, IronPDF devient plus rentable, offrant une meilleure confidentialité des données et une capacité hors ligne.

Le format PDF (Portable Document Format) est la norme pour représenter du texte, des liens, des graphiques et bien plus encore dans un seul document. La manipulation de fichiers PDF en C# nécessite des bibliothèques PDF spécialisées pour les applications .NET . Cet article compare deux API différentes pour la génération de PDF, en examinant leurs performances, leurs fonctionnalités et leurs licences. Lors de la création d'applications .NET, les développeurs ont besoin de fonctionnalités de génération de PDF capables de gérer des mises en page HTML complexes, le style CSS et le rendu JavaScript.

Les API PDF abordées sont les suivantes :

  • IronPDF
  • PDFShift

Qu'est-ce que IronPDF?

IronPDF est une API complète de conversion HTML vers PDF conçue pour le développement .NET et .NET Core. La bibliothèque convertit les sites HTML et offre de nombreuses fonctions de manipulation de fichiers PDF. IronPDF permet aux développeurs de créer , modifier et extraire du contenu à partir de documents PDF dans des environnements .NET. La bibliothèque simplifie la génération de PDF à partir de pages HTML et prend en charge la conversion CSHTML vers PDF pour les applications MVC et les pages Razor .

Les fichiers PDF peuvent être modifiés, tamponnés et améliorés grâce à des en-têtes et des pieds de page. La bibliothèque simplifie la lecture du texte PDF et l'extraction d'images . IronPDF utilise un moteur .NET Chromium pour le rendu HTML vers PDF. Ce moteur garantit un rendu parfait au pixel près et prend en charge les technologies web modernes, notamment la conversion JavaScript vers PDF . Cette étape importante franchie par le moteur de rendu de Chrome a marqué une avancée significative en matière de précision de rendu et d'optimisation des performances .

Quelles sont les fonctionnalités offertes par IronPDF ?

Quelles sont les options de conversion PDF disponibles ?

Créez des PDF à partir de HTML , de chaînes HTML , de vues MVC , de formulaires Web et d'URL . Prend également en charge les conversions Markdown , XML et RTF . Les fonctionnalités de conversion incluent la transformation de DOCX en PDF et d'images en PDF . Pour les applications web, IronPDF gère la conversion de pages ASPX et prend en charge le rendu CSHTML sans interface graphique .

Comment fonctionne l'imagerie PDF ?

Créer des images à partir de PDF et des PDF à partir d'images . Inclut l'extraction d'images, la prise en charge de plusieurs formats et l'impression de PDF . Prend en charge les graphiques SVG et les images Azure Blob Storage . La bibliothèque gère la conversion TIFF multi-images et fournit une conversion PDF vers image de haute qualité . Pour un traitement économe en mémoire, utilisez la rastérisation avec MemoryStream .

Quelles sont les fonctionnalités d'entrée/sortie de fichiers incluses ?

IronPDF offre un chiffrement 128 bits , une protection par mot de passe et des signatures numériques . Inclut la signature HSM et la conformité PDF/A . L' étape PDF/A a étendu la prise en charge des formats d'archivage, notamment PDF/A-3 et ZUGFeRD . Les fonctionnalités de sécurité supplémentaires incluent la désinfection des fichiers PDF et la gestion de l'historique des révisions .

Comment puis-je modifier des fichiers PDF ?

IronPDF propose des filigranes , la gestion des pages , des arrière-plans , des premiers plans et une manipulation complète des PDF . Inclut le dessin , les annotations et la gestion des formulaires . L'édition avancée comprend le remplacement de texte , la rédaction et la transformation des pages PDF . L' étape majeure PDFium DOM améliore la gestion des structures PDF complexes.

Comment extraire le contenu d'un PDF ?

Extraire le texte intégré directement à partir de fichiers PDF. Pour le texte intégré à une image, utilisez IronOCR . L' objet DOM PDF permet un accès programmatique à la structure du PDF. L'extraction avancée comprend la lecture du texte PDF et la gestion des polices . Pour l'analyse de texte, utilisez l'intégration OpenAI pour un traitement intelligent des documents.

Comment fonctionnent les en-têtes et les pieds de page ?

Il est possible d'ajouter des en-têtes et des pieds de page lors de la création ou à des PDF existants. Prend en charge les en-têtes de texte et HTML avec numéros de page dynamiques. Les options avancées incluent l'ajout d'en-têtes sur des pages spécifiques et la gestion des sauts de page . Les options de rendu offrent un contrôle précis sur la mise en page et le format du papier .

Quelles plateformes sont compatibles ?

IronPDF prend en charge les systèmes d'exploitation et les frameworks compatibles C# :

Cette étape de compatibilité a étendu la prise en charge des plateformes. Pour obtenir des conseils sur le déploiement, consultez IronPDF et IIS et le dépannage du déploiement .

Qu'est-ce que PDFShift ?

PDFShift est une API de conversion HTML vers PDF offrant des conversions rapides via des services cloud. L'API offre des conversions parallèles, des requêtes asynchrones, la prise en charge du HTML brut, et bien plus encore. PDFShift prend en charge Ruby, Python, JavaScript, Node et PHP. Pour les développeurs VB.NET ou F# , IronPDF offre une prise en charge native, tandis que PDFShift nécessite une intégration HTTP. Pour une comparaison avec d'autres services cloud, voir Aspose vs IronPDF et Syncfusion vs IronPDF .

PDFShift permet la personnalisation des en-têtes/pieds de page, l'application de CSS et le chiffrement des fichiers. Cependant, ce service ne dispose pas de fonctionnalités de manipulation avancées telles que la compression PDF , la linéarisation ou la conformité PDF/UA . Pour les exigences des entreprises, consultez les divulgations de CVE de sécurité et l'authentification Kerberos .

Quelles sont les fonctionnalités offertes par PDFShift ?

Comment fonctionnent les conversions parallèles ?

PDFShift prend en charge les conversions parallèles pour le traitement simultané de documents. Pour des fonctionnalités similaires, consultez le guide d'IronPDF sur l'asynchrone et le multithreading . IronPDF fournit des exemples de génération PDF parallèle et une génération multithread avec des benchmarks de performance. Les exemples asynchrones illustrent l'optimisation du traitement par lots.

Quelles sont les options d'en-tête et de pied de page disponibles ?

Créez des en-têtes/pieds de page personnalisés avec numéros de page et CSS/JavaScript. IronPDF offre des options avancées, notamment des en-têtes de tableau répétés et des en-têtes HTML personnalisés . Les en-têtes de texte classiques offrent une mise en œuvre simple tandis que les en-têtes HTML permettent des mises en page complexes. Pour le contenu dynamique, utilisez des écouteurs de messages JavaScript .

Est-il possible de convertir du code HTML brut sans rendre les pages publiques ?

PDFShift convertit le code HTML brut sans pages publiques. IronPDF offre des fonctionnalités similaires avec la configuration de l'URL de base et l'intégration de DataURI . L' exemple d'image intégrée en base64 montre une conversion HTML autonome. Pour des conversions sécurisées, utilisez la journalisation personnalisée et les en-têtes de requête HTTP .

Quelle est la qualité du PDF ?

PDFShift crée rapidement des PDF haute fidélité. Le moteur de rendu Chrome d'IronPDF produit des PDF d'une précision pixel parfaite, correspondant à l'affichage du navigateur. Ce tutoriel, d'une précision irréprochable, explique l'optimisation de la qualité. Pour des exigences spécifiques, configurez les paramètres de la fenêtre d'affichage et les délais de rendu .

Comment fonctionnent les requêtes asynchrones ?

Notifications en temps réel pour la finalisation des conversions grâce à une intégration simple. IronPDF offre une prise en charge asynchrone complète avec des exemples de traitement par lots. L' exemple de génération asynchrone de PDF illustre les améliorations de performances. Pour le traitement à grande échelle, voir la gestion de la mémoire et l'assistance aux performances .

Comment créer un nouveau projet dans Visual Studio ?

Ouvrez Visual Studio et sélectionnez Fichier > Nouveau projet > Application console. Cet exemple utilise une application console. Pour les instructions d'installation, consultez la présentation de l'installation et le guide de démarrage rapide . Des modèles de projet supplémentaires incluent des tutoriels Blazor et la visualisation de PDF MAUI . Pour résoudre les problèmes d'installation, consultez le guide de dépannage rapide .

Saisissez le nom et le chemin du projet. Cliquez sur créer. Sélectionnez le framework .NET requis :

Boîte de dialogue de configuration de projet Visual Studio affichant les options de configuration d'un nouveau projet d'application console (.NET Framework) avec des champs pour le nom du projet, son emplacement et la version du framework.

Visual Studio génère la structure de l'application et ouvre le program.cs pour la saisie du code :

L'éditeur Visual Studio Code affiche un modèle d'application console C# avec coloration syntaxique, montrant les instructions using et le point d'entrée de la méthode Main.

Comment installer la bibliothèque IronPDF ?

Installez IronPDF de quatre manières :

  • Gestionnaire de packages NuGet pour Visual Studio
  • Ligne de commande de Visual Studio
  • Téléchargement direct depuis NuGet Téléchargement direct depuis IronPDF

Pour connaître les autres méthodes, consultez le guide d'installation de Windows ou l'installation avancée de NuGet . Les guides spécifiques à chaque plateforme incluent la configuration de Linux , l'installation de macOS et le déploiement de Docker . Pour les environnements où l'espace est limité, utilisez IronPDF Slim .

Comment utiliser le gestionnaire de packages NuGet de Visual Studio ?

Visual Studio fournit le gestionnaire de packages NuGet pour l'installation directe :

Visual Studio Code IDE affichant l'interface du gestionnaire de packages NuGet avec les résultats de recherche et les options d'installation de packages pour le développement .NET

Recherchez " IronPDF " dans le gestionnaire de paquets :

Gestionnaire de packages NuGet de Visual Studio affichant les résultats de recherche pour les packages IronPDF, avec les numéros de version, le nombre de téléchargements et les descriptions des différentes bibliothèques IronPDF.

Sélectionnez IronPDF et installez le package . Pour les déploiements plus modestes, envisagez IronPDF Slim . En cas de problème, consultez la section " Échec du déploiement du package NuGet et exceptions de déploiement " .

Comment utiliser la ligne de commande de Visual Studio ?

Accédez à Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages :

Le menu Outils de Visual Studio s'est étendu, la console du gestionnaire de packages étant mise en évidence, affichant divers outils de développement et options de connexion à la base de données.

Saisissez dans la console :

Install-Package IronPdf

Le package se télécharge et s'installe. Pour les installations spécifiques à une plateforme, consultez la section Déploiement Linux , macOS ou Docker . Pour les erreurs de dépendance, vérifiez les dépendances de Chrome et les dépendances de Pdfium .

Fenêtre de la console du gestionnaire de packages de Visual Studio affichant une invite de commandes vide avec une interface à thème sombre

Puis-je télécharger directement depuis la page Web NuGet ?

Téléchargez directement le package NuGet :

  • Accédez à la page NuGet IronPDF
  • Sélectionnez le package de téléchargement Double-cliquez pour une installation automatique
  • Solution de rechargement

Pour la gestion des packages, consultez le guide des dossiers d'exécution d'IronPDF . En cas de conflits de versions, vérifiez les incompatibilités de versions d'assemblage et la compatibilité avec ClickOnce .

Puis-je télécharger directement depuis la page Web d'IronPDF ?

Téléchargez depuis la page de téléchargement d'IronPDF . Après le téléchargement :

  • Cliquez avec le bouton droit sur le projet dans la fenêtre de solution
  • Sélectionnez les références et accédez au fichier
  • Cliquez sur OK

Pour la configuration des licences, consultez la section utilisation des clés de licence et application des licences . Les options de configuration supplémentaires incluent la définition de la licence dans Web.config et la gestion des extensions de licence .

Comment fonctionne PDFShift ?

PDFShift fonctionne à distance via une API. Soumettez des requêtes POST à l'aide de C# RestClient avec authentification par clé API. Le serveur traite les requêtes et renvoie les fichiers PDF via HTTP. Pour le traitement local, le moteur natif d'IronPDF offre de meilleures performances et une sécurité renforcée. Comparer les options de moteur natif et de moteur distant . Pour des alternatives d'API, consultez Apryse vs IronPDF et iText vs IronPDF .

Comment créer des PDF à partir de HTML ?

Les deux outils permettent la conversion HTML selon des approches différentes. IronPDF offre de nombreuses options, notamment les fichiers ZIP HTML et le rendu personnalisé . Le tutoriel sur la création de fichiers PDF couvre toutes les méthodes de génération. Pour les scénarios avancés, explorez le rendu JavaScript et la gestion CSS réactive .

Comment créer des PDF à partir d'URL avec IronPDF ?

La création de fichiers PDF à partir d'URL nécessite trois lignes de code. Cet exemple de code montre comment IronPDF permet aux développeurs d'implémenter la conversion d'URL en PDF :

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;

// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");

// Export to a file or Stream
pdf.SaveAs("url.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure render options for better results
Renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
Renderer.RenderingOptions.MarginTop = 25;
Renderer.RenderingOptions.MarginBottom = 25;

// Create a PDF from a URL or local file path
using var pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_68___");

// Export to a file or Stream
pdf.SaveAs("url.pdf");
$vbLabelText   $csharpLabel

Pour les pages authentifiées, consultez la section Connexions aux sites Web TLS . Pour les sites JavaScript, utilisez les délais WaitFor et le JavaScript personnalisé . Les options avancées incluent les délais de rendu et la conversion JavaScript en PDF . Pour optimiser les performances, consultez les solutions en cas de rendu initial lent .

Résultat :

Le site web d'Amazon Pakistan affiche une fenêtre contextuelle de modification d'adresse de livraison au-dessus d'une page d'achat de jouets et de jeux où les catégories accessoires de jeux et électronique sont visibles.

Comment convertir du HTML en PDF avec IronPDF ?

Convertissez facilement du HTML en PDF :

using IronPdf;

var pdf = new ChromePdfRenderer();

// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;

// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();

PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
using IronPdf;

var pdf = new ChromePdfRenderer();

// Add custom CSS for better formatting
pdf.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
pdf.RenderingOptions.EnableJavaScript = true;

// Include web fonts and icons
pdf.RenderingOptions.WaitFor.FontsLoaded();

PdfDocument doc = pdf.RenderHtmlAsPdf("<h1>This is a heading</h1>");
doc.SaveAs("FirstPDFDocument.pdf");
$vbLabelText   $csharpLabel

Pour le code HTML complexe, utilisez les URL de base pour les chemins relatifs. Ajoutez des polices web et des icônes pour la typographie. Les options de mise en forme supplémentaires incluent les polices personnalisées et les langues internationales . Pour résoudre les problèmes liés aux polices, consultez la section gestion des polices et les problèmes de crénage des polices .

Interface de visualisation PDF affichant un document simple avec le texte

Comment créer des PDF à partir d'URL avec PDFShift ?

La conversion d'URL avec PDFShift nécessite des requêtes POST :

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_69___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_70___",
                // Additional options
                landscape = false,
                use_print = false
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_69___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_70___",
                // Additional options
                landscape = false,
                use_print = false
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode} - {response.ErrorMessage}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Comment convertir du HTML en PDF avec PDFShift ?

PDFShift propose la conversion HTML vers PDF :

using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_71___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            string documentContent = File.ReadAllText("document.html");
            var json = new
            {
                source = documentContent,
                // Additional formatting options
                margin = "20px",
                format = "A4"
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using System.IO;
using RestSharp;
using RestSharp.Authenticators;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_71___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            string documentContent = File.ReadAllText("document.html");
            var json = new
            {
                source = documentContent,
                // Additional formatting options
                margin = "20px",
                format = "A4"
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
                Console.WriteLine($"Error: {response.StatusCode}");
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Comment ajouter des en-têtes et des pieds de page personnalisés ?

Les en-têtes et les pieds de page améliorent les documents PDF en fournissant des informations cohérentes d'une page à l'autre. IronPDF et PDFShift prennent tous deux en charge cette fonctionnalité. Pour les scénarios avancés, reportez-vous à l'ajout d'en-têtes aux pages et au contrôle des sauts de page . L' exemple de numérotation et de saut de page illustre une implémentation complète. Pour contrôler la mise en page, explorez les marges personnalisées et l'orientation des pages PDF .

Comment ajouter des en-têtes et des pieds de page avec IronPDF ?

IronPDF propose deux méthodes pour implémenter les en-têtes et les pieds de page :

TextHeaderFooter : Cette méthode utilise des en-têtes textuels avec des données dynamiques.

HtmlHeaderFooter : Cette approche permet de générer des en-têtes et des pieds de page HTML à l'aide de modèles.

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;

// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 25,
    DrawDividerLine = true
};

// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;

var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();

// Configure text header with merge fields
Renderer.RenderingOptions.FirstPageNumber = 1; // use 2 if a cover page will be appended
Renderer.RenderingOptions.TextHeader.DrawDividerLine = true;
Renderer.RenderingOptions.TextHeader.CenterText = "{url}";
Renderer.RenderingOptions.TextHeader.Font = IronPdf.Font.FontTypes.Helvetica;
Renderer.RenderingOptions.TextHeader.FontSize = 12;

// Add HTML footer with page numbers
Renderer.RenderingOptions.HtmlFooter = new IronPdf.HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>",
    Height = 25,
    DrawDividerLine = true
};

// Apply custom margins
Renderer.RenderingOptions.MarginTop = 40;
Renderer.RenderingOptions.MarginBottom = 40;

var pdf = Renderer.RenderHtmlAsPdf("<h1>Document with Headers</h1>");
pdf.SaveAs("headers-footers.pdf");
$vbLabelText   $csharpLabel

Pour les mises en page complexes, envisagez d'utiliser une table des matières et des signets . L' exemple des plans et des signets fournit une structure de navigation. Pour un positionnement précis, utilisez l'exemple de marges personnalisées et transformez les pages PDF .

Comment ajouter des en-têtes et des pieds de page avec PDFShift ?

PDFShift permet de personnaliser les documents avec des en-têtes et des pieds de page à des fins d'identification ou de marque :

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_72___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_73___",
                footer = new { 
                    source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", 
                    spacing = "50px" 
                },
                header = new {
                    source = "<div>Company Name</div>",
                    spacing = "30px"
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_72___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_73___",
                footer = new { 
                    source = "<div style=\"font-size: 12px\">Page {{page}} of {{total}}</div>", 
                    spacing = "50px" 
                },
                header = new {
                    source = "<div>Company Name</div>",
                    spacing = "30px"
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Comment ajouter un filigrane à un PDF ?

L'ajout d'un filigrane aux PDF permet de renforcer la visibilité et la sécurité des documents. IronPDF et PDFShift prennent tous deux en charge le marquage en filigrane. Pour plus d'options, consultez la section " Tamponner du texte et des images " et " Tamponner du nouveau contenu " . L' exemple de tatouage numérique PDF illustre des techniques avancées. Pour le traitement par lots, utilisez l'estampillage HTML efficace .

Comment ajouter des filigranes avec IronPDF ?

IronPDF permet d'ajouter un filigrane aux fichiers PDF à l'aide de HTML. Les filigranes peuvent inclure l'opacité, la rotation et les hyperliens. Pour des exemples, voir les exemples de filigrane PDF . Pour plusieurs tampons, envisagez un tamponnage HTML efficace . Les options supplémentaires incluent des exemples d'arrière-plans et de premiers plans, ainsi que le dessin de texte et de bitmap .

using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");

// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", 
    IronPdf.Editing.WaterMarkLocation.MiddleCenter, 
    50, // opacity
    -45, // rotation
    "___PROTECTED_URL_75___");

// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 
    30, // opacity
    IronPdf.Editing.VerticalAlignment.Top,
    IronPdf.Editing.HorizontalAlignment.Right);

Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

var Renderer = new IronPdf.ChromePdfRenderer();
using var Pdf = Renderer.RenderUrlAsPdf("___PROTECTED_URL_74___");

// Add text watermark with opacity and rotation
Pdf.WatermarkAllPages("<h2 style='color:red'>SAMPLE</h2>", 
    IronPdf.Editing.WaterMarkLocation.MiddleCenter, 
    50, // opacity
    -45, // rotation
    "___PROTECTED_URL_75___");

// Add image watermark
Pdf.ApplyWatermark("<img src='logo.png' style='width:200px'>", 
    30, // opacity
    IronPdf.Editing.VerticalAlignment.Top,
    IronPdf.Editing.HorizontalAlignment.Right);

Pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
$vbLabelText   $csharpLabel

Pour un filigrane avancé, combinez-le avec des arrière-plans et des premiers plans ou un estampage personnalisé . L' exemple de page de couverture jointe illustre l'identité visuelle du document. Pour un contrôle précis, utilisez la rotation du texte et la mise à l'échelle des objets PDF .

La page du package NuGet IronPDF présente la version 2022.6.6115 avec sa commande d'installation, ses 3,7 millions de téléchargements et ses fonctionnalités pour la création et la manipulation de fichiers PDF en C#.

Comment ajouter des filigranes avec PDFShift ?

PDFShift permet d'ajouter des filigranes aux documents à des fins d'identification :

using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_76___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_77___",
                watermark = new { 
                    image = "___PROTECTED_URL_78___", 
                    offset_x = 50, 
                    offset_y = "100px", 
                    rotate = 45,
                    opacity = 0.5
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
using System;
using RestSharp;
using RestSharp.Authenticators;
using System.IO;

namespace PDFShiftExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var client = new RestClient("___PROTECTED_URL_76___");
            client.Authenticator = new HttpBasicAuthenticator("api", "your_api_key");

            var request = new RestRequest(Method.POST);

            var json = new
            {
                source = "___PROTECTED_URL_77___",
                watermark = new { 
                    image = "___PROTECTED_URL_78___", 
                    offset_x = 50, 
                    offset_y = "100px", 
                    rotate = 45,
                    opacity = 0.5
                }
            };
            request.AddJsonBody(json);

            var response = client.Execute(request);
            if (!response.IsSuccessful)
            {
                // Handle the unsuccessful response
            }
            else
            {
                File.WriteAllBytes("result.pdf", response.RawBytes);
            }
        }
    }
}
$vbLabelText   $csharpLabel

Dans quelle mesure ces outils prennent-ils en charge Bootstrap et le CSS moderne ?

Le développement web moderne repose sur des frameworks CSS pour la conception réactive, et les bibliothèques PDF doivent convertir ces frameworks avec précision. Consultez le guide Bootstrap et Flex CSS . Pour une conception adaptative, vérifiez les paramètres de la fenêtre d'affichage et du zoom ainsi que les formats de papier personnalisés . L' exemple de format de papier PDF personnalisé illustre un dimensionnement précis. Pour le contrôle de la mise en page, explorez les options " Ajuster à la page ", " Zoom " et " HTML réactif vers PDF " .

IronPDF prend-il en charge Bootstrap et les frameworks CSS modernes ?

Le moteur de rendu Chrome d'IronPDF offre une prise en charge étendue des frameworks CSS :

Bootstrap 5 : Flexbox complet et CSS Grid avec utilitaires responsifs Bootstrap 4 : Systèmes de cartes complets, navigation, composants de formulaire

  • Tailwind CSS : Toutes les classes utilitaires et les modificateurs responsifs
  • Fondation : Systèmes de grille et de composants complets CSS3 moderne : Flexbox, Grid, propriétés personnalisées, animations, transformations

Validation : La page d'accueil et les modèles Bootstrap se convertissent correctement. Consultez le guide des options de rendu . IronPDF prend en charge Angular to PDF et d'autres frameworks. La prise en charge supplémentaire du framework inclut les graphiques JavaScript et le rendu WebGL . Pour une optimisation optimale, utilisez les paramètres de rendu HTML et une mise en forme au pixel près .

Exemple de code : Formulaire de contact avec Bootstrap

using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport

string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_79___ rel='stylesheet'>
    <style>
        @media print {
            .no-print { display: none; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <div class='row justify-content-center'>
            <div class='col-lg-8'>
                <div class='card shadow'>
                    <div class='card-header bg-primary text-white'>
                        <h2 class='mb-0'>Contact Us</h2>
                    </div>
                    <div class='card-body'>
                        <form>
                            <div class='row g-3'>
                                <div class='col-md-6'>
                                    <label class='form-label'>First Name</label>
                                    <input type='text' class='form-control' placeholder='John'>
                                </div>
                                <div class='col-md-6'>
                                    <label class='form-label'>Last Name</label>
                                    <input type='text' class='form-control' placeholder='Doe'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Email Address</label>
                                <div class='input-group'>
                                    <span class='input-group-text'>@</span>
                                    <input type='email' class='form-control' placeholder='john.doe@example.com'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Subject</label>
                                <select class='form-select'>
                                    <option>General Inquiry</option>
                                    <option>Technical Support</option>
                                    <option>Sales Question</option>
                                    <option>Partnership Opportunity</option>
                                </select>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Message</label>
                                <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
                            </div>

                            <div class='d-flex justify-content-between align-items-center mt-4'>
                                <div class='form-check'>
                                    <input class='form-check-input' type='checkbox' id='newsletter'>
                                    <label class='form-check-label' for='newsletter'>
                                        Subscribe to newsletter
                                    </label>
                                </div>
                                <button type='submit' class='btn btn-primary px-4'>Submit</button>
                            </div>
                        </form>
                    </div>
                </div>

                <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
                    <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
                    <div>We typically respond within 24 hours during business days.</div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

// Configure for improve Bootstrap rendering
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Screen;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 500; // Allow JS to execute
renderer.RenderingOptions.ViewPortWidth = 1200; // Desktop viewport

string bootstrapContact = @"
<!DOCTYPE html>
<html>
<head>
    <link href='___PROTECTED_URL_79___ rel='stylesheet'>
    <style>
        @media print {
            .no-print { display: none; }
        }
    </style>
</head>
<body>
    <div class='container my-5'>
        <div class='row justify-content-center'>
            <div class='col-lg-8'>
                <div class='card shadow'>
                    <div class='card-header bg-primary text-white'>
                        <h2 class='mb-0'>Contact Us</h2>
                    </div>
                    <div class='card-body'>
                        <form>
                            <div class='row g-3'>
                                <div class='col-md-6'>
                                    <label class='form-label'>First Name</label>
                                    <input type='text' class='form-control' placeholder='John'>
                                </div>
                                <div class='col-md-6'>
                                    <label class='form-label'>Last Name</label>
                                    <input type='text' class='form-control' placeholder='Doe'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Email Address</label>
                                <div class='input-group'>
                                    <span class='input-group-text'>@</span>
                                    <input type='email' class='form-control' placeholder='john.doe@example.com'>
                                </div>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Subject</label>
                                <select class='form-select'>
                                    <option>General Inquiry</option>
                                    <option>Technical Support</option>
                                    <option>Sales Question</option>
                                    <option>Partnership Opportunity</option>
                                </select>
                            </div>

                            <div class='mt-3'>
                                <label class='form-label'>Message</label>
                                <textarea class='form-control' rows='5' placeholder='Your message here...'></textarea>
                            </div>

                            <div class='d-flex justify-content-between align-items-center mt-4'>
                                <div class='form-check'>
                                    <input class='form-check-input' type='checkbox' id='newsletter'>
                                    <label class='form-check-label' for='newsletter'>
                                        Subscribe to newsletter
                                    </label>
                                </div>
                                <button type='submit' class='btn btn-primary px-4'>Submit</button>
                            </div>
                        </form>
                    </div>
                </div>

                <div class='alert alert-info mt-4 d-flex align-items-center' role='alert'>
                    <svg class='bi flex-shrink-0 me-2' width='24' height='24'></svg>
                    <div>We typically respond within 24 hours during business days.</div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapContact);
pdf.SaveAs("contact-form.pdf");
$vbLabelText   $csharpLabel

Résultat : Un formulaire de contact professionnel avec les contrôles de formulaire, la mise en page en grille, le style des cartes et les groupes de saisie de Bootstrap, le tout rendu avec précision en PDF.

Pour plus d'exemples, consultez la section sur le rendu de graphiques et de sites WebGL . L' exemple d'ajout de codes-barres en HTML montre des éléments HTML supplémentaires. Pour optimiser les performances, utilisez les ressources PDF, le guide des performances et la gestion de la taille des packages .

PDFShift prend-il en charge Bootstrap et le CSS moderne ?

  • API Cloud : Toutes les conversions s'effectuent via des appels d'API HTTP aux serveurs PDFShift.
  • Compatibilité avec Bootstrap : Gère généralement bien les mises en page Bootstrap 4/5
  • Prise en charge CSS3 : Flexbox performant et rendu CSS moderne
  • Connexion Internet requise : impossible de générer des PDF hors ligne Tarification par document : facturation par conversion, et non par licence de développeur

Points clés à prendre en compte pour PDFShift :

  • Dépendance externe : La génération de PDF nécessite une connexion internet et l'accès à une API externe.
  • Confidentialité des données : Le contenu HTML est envoyé à des serveurs tiers pour traitement.
  • Coûts liés au volume : La tarification par document peut devenir onéreuse à grande échelle.
  • Latence : Les allers-retours sur le réseau ajoutent un délai à chaque conversion
  • Aucune fonctionnalité hors ligne : ne peut pas fonctionner dans des environnements isolés ou hors ligne.

Impact sur le développement : Bien que PDFShift gère bien Bootstrap, l'architecture cloud introduit des compromis opérationnels :

  1. Coûts par document continus vs licence à vie pour chaque développeur d'IronPDF
  2. Dépendance à un service externe vs traitement local sur site
  3. Considérations sur le traitement des données pour le contenu sensible
  4. Nécessité de connectivité internet vs capacité hors ligne

Impact sur le développement : L'architecture cloud introduit des considérations opérationnelles :

  1. Coûts récurrents par document versus licence unique
  2. Dépendance externe versus contrôle du traitement local
  3. Exigences relatives au traitement des données sensibles
  4. Prérequis de connexion Internet

Pour les applications à volume élevé ou les données sensibles, le traitement local d'IronPDF offre un meilleur contrôle et une meilleure valeur ajoutée. Pour optimiser les performances, envisagez la génération parallèle et le multithreading . L' exemple multithread illustre le traitement concurrent. Pour les alternatives cloud, voir le déploiement Azure et l'intégration AWS Lambda .

Consultez le guide CSS Bootstrap et Flexbox et les paramètres de rendu HTML . Pour une prise en charge CSS moderne, consultez les langues internationales, le CMJN et la visibilité des métadonnées .

Quelles sont les options de licence ?

IronPDF propose une licence développeur gratuite . Le pack léger est disponible à partir de $799 , sans frais cachés. Le package inclut la redistribution SaaS et OEM . Toutes les licences sont assorties d'une garantie de remboursement de 30 jours, d'un an d'assistance et de mises à jour, et sont valables pour le développement, les tests, la préproduction et la production avec une licence perpétuelle. Consultez la page Tarification et licences d'IronPDF . Pour la gestion des licences, consultez la section application des clés de licence et configuration des clés de licence . Le guide des clés de licence couvre toutes les méthodes de configuration. Pour le dépannage des licences, consultez la section " Impossible de se connecter au serveur de licences " et " Utilisation des déclarations " .

La page de licences d'IronPDF présente trois niveaux : Lite (499 $), Professionnel (999 $) et Illimité (2 999 $), avec des limites par développeur et par projet pour chaque niveau.

PDFShift propose cinq formules disponibles mensuellement ou annuellement avec des crédits :

  1. Gratuit : 50 crédits par mois
  2. Démarrage : 500 crédits par mois (9 $) ou 6 000 par an (99 $)
  3. Boost : 2 500 crédits par mois (24 $) ou 30 000 par an (240 $)
  4. Croissance : 5 000 crédits par mois (39 $) ou 60 000 par an (390 $)
  5. Entreprise : 25 000 crédits par mois (99 $)

Limites de taille des fichiers : 1 Mo (gratuit), 5 Mo (forfaits payants).

Comparatif des tarifs de PDFShift présentant trois formules annuelles : Startup (90 $), Boost (240 $) et Growth (390 $), avec différents forfaits mensuels et taux de dépassement.

Consultez la page des tarifs de PDFShift .

Quelle API PDF choisir ?

IronPDF est gratuit pour les développeurs indépendants et offre de nombreuses fonctionnalités de modification et de conversion de fichiers PDF. IronPDF offre des outils d'édition et de mise en forme de qualité supérieure. La bibliothèque convertit le HTML en PDF vectoriels pour l'impression commerciale avec un rendu clair et de haute qualité. Consultez les informations relatives aux licences logicielles d'Iron . Pour des fonctionnalités supplémentaires, explorez l'organisation des PDF , la signature et la sécurisation des PDF , ainsi que les options de conversion de PDF . La liste complète des fonctionnalités couvre toutes les capacités. Pour les fonctionnalités destinées aux entreprises, consultez l'exemple de signatures numériques ainsi que les fonctions de chiffrement et de déchiffrement .

PDFShift est une API HTML-vers-PDF basée sur le cloud, dotée de points de terminaison simples et prenant en charge plusieurs langues. PDFShift gère les conversions parallèles via des requêtes serveur. Cependant, le service ne dispose pas de fonctionnalités avancées telles que la création de formulaires PDF , la fusion de PDF , le remplacement de texte ou l'édition de métadonnées . Pour une comparaison de la gestion des formulaires, voir l'exemple de données de formulaire et remplir et modifier les formulaires . Pour l'organisation des documents, consultez l'exemple de fusion de PDF et la section des pages PDF .

Les licences IronPDF sont destinées aux développeurs et nécessitent un achat unique. PDFShift utilise un système de licences mensuel ou annuel basé sur des crédits, nécessitant un abonnement continu. IronPDF prend en charge la distribution OEM et SaaS ; PDFShift ne prend pas en charge. Pour la gestion des licences, consultez les extensions et options de mise à niveau d'IronPDF . Le journal des modifications répertorie toutes les mises à jour du produit. Pour connaître les options d'assistance, consultez le guide de demande d'assistance technique et les meilleures pratiques d'assistance .

En comparant les deux outils : IronPDF offre nettement plus de fonctionnalités. PDFShift offre des fonctionnalités limitées de manipulation de fichiers PDF. IronPDF convertit les URL en PDF en trois lignes, tandis que PDFShift nécessite une complexité de code supplémentaire. IronPDF s'intègre rapidement et facilement aux projets .NET. Le système cloud de PDFShift dépend de RestSharp et d'API externes, ce qui complexifie l'intégration. Pour obtenir des ressources de dépannage, consultez le guide de dépannage rapide et le support technique . Les ressources supplémentaires incluent les fichiers journaux Azure et les fichiers journaux AWS . Pour obtenir des conseils sur le déploiement, consultez la documentation relative au dépannage du déploiement Azure et au débogage des fonctions Azure .

Iron Software propose cinq outils pour le prix de deux. La suite Iron comprend :

  • IronBarcode - Génération et lecture de codes-barres IronXL - Manipulation de fichiers Excel sans Office
  • IronOCR - OCR avancé pour l'extraction de texte
  • IronPDF - Bibliothèque complète de manipulation de fichiers PDF
  • IronWebScraper - Extraction de données et web scraping

Visitez la page Iron Suite pour découvrir IRONSUITE. Pour découvrir d'autres produits Iron Software, consultez la documentation IronSecureDoc pour vos besoins en matière de sécurité des documents. Les démonstrations de produits présentent des applications concrètes. Pour une analyse concurrentielle, consultez la comparaison entre QuestPDF et IronPDF . La page des étapes clés met en lumière les réalisations majeures depuis 2015.

Veuillez noterPDFShift est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, ni approuvé par, ni sponsorisé par PDFShift. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont faites à titre d'information uniquement et reflètent les informations publiquement disponibles au moment de la rédaction.

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 PDFs. Vous pouvez également convertir des fichiers HTML en PDFs en utilisant RenderHtmlFileAsPdf.

Quels sont les avantages de l'utilisation d'IronPDF pour la manipulation de PDF ?

IronPDF offre un ensemble robuste de fonctionnalités pour la manipulation de PDF, y compris la création de PDF à partir de divers formats, l'extraction d'images, le chiffrement, les capacités d'édition et la compatibilité avec plusieurs plateformes telles que Windows, Linux et les services cloud comme Azure et AWS.

Quelles sont les caractéristiques clés de PDFShift ?

PDFShift est une API basée sur le cloud qui prend en charge des conversions HTML en PDF rapides avec des fonctionnalités telles que les conversions parallèles, les en-têtes personnalisés, les requêtes asynchrones et la compatibilité avec plusieurs langages de programmation.

Comment IronPDF et PDFShift diffèrent-ils en termes de licence ?

IronPDF propose une licence basée sur les développeurs avec un achat unique et une garantie de remboursement de 30 jours. En revanche, PDFShift utilise un système de licence basé sur le crédit avec des plans mensuels et annuels.

IronPDF peut-il être utilisé dans des environnements cloud ?

Oui, IronPDF prend en charge les environnements cloud tels que Microsoft Azure et AWS, ce qui le rend polyvalent pour différents scénarios de déploiement.

Comment ajouter des en-têtes et des pieds de page à un PDF avec IronPDF ?

IronPDF vous permet d'ajouter des en-têtes et des pieds de page aux PDF en utilisant ses méthodes intégrées, qui peuvent être personnalisées pour inclure du texte, des images ou des numéros de page.

Quelles plateformes IronPDF prend-il en charge ?

IronPDF prend en charge presque tous les systèmes d'exploitation et frameworks compatibles avec C#, y compris Windows, Linux, .NET Core, et peut également être utilisé dans des environnements cloud.

Comment puis-je installer IronPDF dans mon projet Visual Studio ?

IronPDF peut être installé en utilisant le gestionnaire de packages NuGet de Visual Studio, la ligne de commande de Visual Studio, ou en téléchargeant directement depuis les pages NuGet ou IronPDF.

Est-il possible d'extraire des images des PDF à l'aide de IronPDF ?

Oui, IronPDF offre des capacités pour extraire des images des PDF, permettant aux développeurs de manipuler et réutiliser les images en dehors du document original.

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