Passer au contenu du pied de page
COMPARAISONS DE PRODUITS

CraftMyPDF vs IronPDF : quelle bibliothèque de génération de PDF pour les développeurs C# ?

IronPDF offre une conversion HTML en PDF en priorité avec un support complet CSS/JavaScript et une licence perpétuelle à partir de 749 $, tandis que CraftMyPDF propose la conception de modèles basés sur le cloud avec une intégration JSON, mais nécessite des abonnements en cours et des dépendances API.

CraftMyPDF propose un concepteur de modèles glisser-déposer basé sur le cloud avec intégration de données JSON, tandis que IronPDF fournit en priorité la conversion HTML en PDF avec un support complet CSS/JavaScript pour les développeurs .NET recherchant un contrôle total sur la génération de documents.

PDF, ou Portable Document Format, est un format de fichier développé par Adobe pour l'échange de documents. Il préserve la mise en forme, les polices et les images sur différents appareils, garantissant une apparence cohérente. Les PDFs prennent en charge les fonctionnalités de sécurité, l'interactivité et la compression, ce qui les rend idéaux pour un partage de documents fiable.

Les bibliothèques PDF C# permettent aux développeurs de créer, modifier et extrait du contenu des PDFs de manière programmatique. Ces outils prennent en charge la gestion des formulaires, les signatures numériques et le déploiement multiplateforme. En intégrant des bibliothèques PDF, les développeurs peuvent ajouter des capacités de génération de documents directement à leurs applications, simplifiant les flux de travail pour créer, éditer et gérer les PDFs.

Cet article compare deux approches différentes de génération de PDF: la bibliothèque IronPDF C# et l'API Craftmypdf. La comparaison examine les fonctionnalités, fournit des exemples de code et discute des options de licence.

Qu'est-ce que la solution de base API CraftMyPDF?

Page d'accueil CraftMyPDF affichant l'interface de l'éditeur de PDF glisser-déposer avec un modèle de liste de colisage en cours de modification en temps réel

CraftMyPDF est une API basée sur le cloud pour créer des PDFs à l'aide de modèles. Il fournit un éditeur en ligne glisser-déposer pour concevoir des modèles réutilisables sans codage. La plateforme génère des PDFs en fusionnant ces modèles avec des données JSON, prenant en charge la génération de contenu dynamique pour des documents tels que des factures, des rapports et des certificats.

Quelles sont les principales caractéristiques de CraftMyPDF?

  1. Éditeur Glisser-Déposer: Concepteur de modèles visuel ne nécessitant pas de connaissances en codage.

  2. Réutilisabilité des Modèles: Concevez une fois, utilisez plusieurs fois avec différents ensembles de données.

  3. Intégration de Données JSON: Fusionner des données dynamiques avec des modèles via JSON.

  4. Mise en Forme Avancée et Expressions: Formater dates, nombres et devises de manière dynamique.

  5. Intégrations API: L'API REST prend en charge Zapier, Make.com et les applications personnalisées.

  6. Éléments Remplissables: Créez des formulaires interactifs avec des champs de texte et des cases à cocher.

  7. Sécurité et conformité: Sécurisez l'accès au PDF avec des points de terminaison API régionaux et une conformité GDPR.

Qu'est-ce que IronPDF?

IronPDF PDF Library for .NET Developers est une bibliothèque complète pour les applications .NET. Écrite en C#, elle génère des PDFs parfaits à partir de HTML, CSS, JavaScript et images. IronPDF simplifie les flux de travail PDF en offrant de vastes capacités de création, d'édition et de gestion dans les environnements .NET.

Quelles sont les principales fonctionnalités d'IronPDF?

  1. Conversion HTML en PDF: Convertissez HTML, CSS et JavaScript en PDFs avec une précision pixel-parfaite.

  2. URL en PDF: Générez des PDFs à partir de n'importe quelle URL, en préservant le contenu et le style réactif.

  3. Image en PDF: Convertissez JPG, PNG, GIF, BMP, et SVG en documents PDF avec prise en charge des TIFF multi-trames.

  4. Remplissage de formulaires et extraction de données: Créez et remplissez des formulaires PDF de manière programmatique avec une validation personnalisée.

  5. Signatures numériques et sécurité: Ajoutez des signatures numériques, des mots de passe et des permissions avec prise en charge HSM.

  6. Édition des PDFs: Ajoutez, copiez ou supprimez des pages. Fusionner et diviser des PDFs avec des capacités de rotation des pages.

  7. Annotations et pièces jointes: Ajoutez des notes autocollantes et intégrez des pièces jointes avec des métadonnées personnalisées.

  8. En-têtes, pieds de page et filigranes: Appliquez des en-têtes et pieds de page personnalisés, ainsi que des filigranes avec des modèles HTML.

  9. Compatibilité multiplateforme: Fonctionne sur Windows, macOS, Linux, Docker, Azure, et AWS.

  10. Optimisation des performances: Support multitâche et asynchrone pour une génération à grand volume avec traitement parallèle.

  11. Documentation complète: Guides approfondis, tutoriels, et support technique 24/5.

  12. Aucune dépendance externe: Déploiement d'un seul DLL sans exigences logicielles supplémentaires en utilisant un moteur de rendu natif.

Comment créer une application C# dans Visual Studio?

Créer une application console C# nécessite Visual Studio installé sur l'ordinateur. Suivez ces étapes pour configurer le projet:

Comment ouvrir Visual Studio?

Lancez Visual Studio depuis le menu Démarrer ou l'icône du bureau.

Comment créer un nouveau projet ?

  1. Cliquez sur "Créer un nouveau projet" sur la page d'accueil.
  2. Recherchez "Application console" ou sélectionnez dans la liste des modèles.

Comment choisir le modèle de projet?

Sélectionnez "Application console (.NET Core)" ou "Application console (.NET Framework)" selon les besoins. Pour le support .NET MAUI, choisissez les modèles MAUI appropriés.

Comment configurer mon projet ?

  1. Nom du projet: Saisissez le nom du projet
  2. Emplacement: Choisissez le répertoire d'enregistrement
  3. Nom de la solution: Correspond généralement au nom du projet
  4. Cliquez sur "Créer" pour continuer

Comment installer IronPDF?

IronPDF propose trois méthodes d'installation: Gestionnaire de packages NuGet, Console du gestionnaire de packages, et téléchargement direct. La bibliothèque prend en charge Windows, macOS, Linux, et les déploiements cloud.

Comment utiliser le Gestionnaire de packages NuGet?

Dans Visual Studio, cliquez droit sur "Références" ou "Dépendances" dans l'Explorateur de solutions. Sélectionnez "Gérer les Packages NuGet", recherchez "IronPDF", et cliquez sur "Installer".

Gestionnaire de packages NuGet de Visual Studio affichant les résultats de recherche pour IronPDF, avec le package principal IronPDF version 2024.5.2 installé et des packages connexes comme IronPdf.Native.Chrome.Windows et IronPdf.Slim visibles

Comment utiliser la Console du gestionnaire de packages NuGet?

Ouvrez Outils > Gestionnaire de packages NuGet > Console du gestionnaire de packages et exécutez:

Install-Package IronPdf

Comment télécharger depuis le site Web de NuGet?

Visitez le site Web de NuGet, téléchargez le fichier du package et ajoutez-le comme source de package dans Visual Studio. Pour les déploiements Docker, utilisez des configurations de conteneurs spécifiques.

Pour des conseils détaillés, consultez la vue d'ensemble de l'installation et la configuration avancée de NuGet.

Comment utiliser CraftMyPDF?

Pour intégrer CraftMyPDF, créez un compte, sélectionnez un plan et obtenez des identifiants API.

Comment créer un compte et sélectionner le plan gratuit?

  1. Inscription: Inscrivez-vous sur le site Web CraftMyPDF
  2. Sélectionner le plan gratuit: Choisissez le niveau gratuit pour le développement et les tests
  3. Obtenez la clé API: Accédez à la clé API à partir du tableau de bord du compte

Tableau de bord CraftMyPDF affichant les détails de l'abonnement au plan gratuit, 6/50 crédits utilisés, et un changelog récent avec de nouvelles fonctionnalités incluant des champs de signature et des corrections de bugs

Quelles bibliothèques dois-je installer?

Installez les packages System.Net.Http, RestSharp et Newtonsoft.Json:

using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using RestSharp;
$vbLabelText   $csharpLabel

Initialisez le client API:

var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
var client = new RestClient("___PROTECTED_URL_51___");
var request = new RestRequest(Method.Post);
string apiKey = "API Key"; // Replace with your actual API key
string templateId = "Template ID"; // Replace with your actual template ID
request.AddHeader("X-API-KEY", apiKey);
request.AddHeader("Content-Type", "application/json");
$vbLabelText   $csharpLabel

Comment créer des PDFs?

Les deux bibliothèques offrent différentes approches pour générer des PDFs. IronPDF utilise le rendu HTML basé sur du code, tandis que CraftMyPDF utilise des modèles visuels avec liaison de données. IronPDF prend également en charge les conversions Markdown en PDF et XML en PDF.

Comment créer des PDFs avec IronPDF?

Comment convertir HTML en PDF?

Convertissez des chaînes HTML directement en PDF avec un support CSS complet et un rendu JavaScript:

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtml()
    {
        var renderer = new ChromePdfRenderer();
        // Define your HTML string
        string htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a sample PDF document created from an HTML string.</p>";
        // Render the HTML as a PDF document
        var pdfDocument = renderer.RenderHtmlAsPdf(htmlContent);
        // Save the PDF document
        pdfDocument.SaveAs("html_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Capture d'écran d'un document PDF généré par IronPDF montrant le titre 'Hello, IronPDF!' et un texte d'exemple démontrant la conversion HTML en PDF

Pour plus d'exemples, visitez la page d'exemples HTML en PDF. Les développeurs peuvent également définir des marges personnalisées, ajouter des sauts de page et configurer la taille du papier.

Comment convertir une URL en PDF?

Convertissez des pages Web en PDFs tout en préservant l'intégralité du style, y compris le contenu WebGL et le CSS réactif:

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromUrl(string url)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the URL as a PDF document
        var pdfDocument = renderer.RenderUrlAsPdf(url);
        // Save the PDF document
        pdfDocument.SaveAs("url_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Page d'accueil d'IronPDF affichant un exemple de code C# pour la conversion HTML en PDF utilisant ChromePdfRenderer en C#, avec un nombre de téléchargements NuGet de 9 229 207 et les principales caractéristiques de la bibliothèque

En savoir plus sur la conversion d'URL en PDF. Pour les pages authentifiées, voir les connexions de site web TLS et les en-têtes de requêtes HTTP.

Comment convertir un fichier HTML en PDF?

Convertissez des fichiers HTML locaux en PDFs avec un support pour les types de médias CSS et des URLs de base:

using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
using IronPdf;
public class PDFCreator
{
    public void CreatePdfFromHtmlFile(string filePath)
    {
        // Initialize the ChromePdfRenderer
        var renderer = new ChromePdfRenderer();
        // Render the HTML file as a PDF document
        var pdfDocument = renderer.RenderHtmlFileAsPdf(filePath);
        // Save the PDF document
        pdfDocument.SaveAs("html_file_output.pdf");
    }
}
$vbLabelText   $csharpLabel

Voir le guide fichier HTML en PDF pour les détails. Pour les fichiers ZIP HTML, IronPDF gère l'extraction automatiquement.

Comment créer des PDFs avec l'API CraftMyPDF?

CraftMyPDF nécessite de créer d'abord des modèles, puis de générer des PDFs en fusionnant des données.

Comment créer un modèle?

  1. Connectez-vous au tableau de bord: Accédez au compte CraftMyPDF
  2. Créer un nouveau modèle: Utilisez l'éditeur glisser-déposer pour concevoir
  3. Enregistrer le modèle: Obtenez l'ID du modèle pour les appels API

Tableau de gestion de modèles CraftMyPDF affichant un modèle de facture avec des outils de modification et des ressources de tutoriel

Comment envoyer une requête pour générer un PDF?

Générez des PDFs en envoyant des données JSON au modèle:

using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
using System;
using System.Net;
using System.Threading.Tasks;
using RestSharp;

class Program
{
    static async Task Main(string[] args)
    {
        var client = new RestClient("___PROTECTED_URL_52___");
        var request = new RestRequest(Method.Post);
        string apiKey = "API-Key"; // Replace with your actual API key
        string templateId = "Template-ID"; // Replace with your actual template ID
        request.AddHeader("X-API-KEY", apiKey);
        request.AddHeader("Content-Type", "application/json");
        var body = new
        {
            data = new
            {
                invoice_number = "INV48321",
                date = "2024-05-27",
                due_date = "2024-06-27",
                currency = "EUR",
                discount = 10,
                tax = 5,
                company_name = "Tech Innovations Ltd",
                email = "contact@techinnovations.com",
                client = "Future Solutions GmbH",
                client_address = "1234 Innovation Drive",
                client_address2 = "Berlin",
                client_address3 = "10115",
                items = new[]
                {
                    new { description = "Cloud Hosting Services", quantity = 12, unit_price = 75, total = 900 },
                    new { description = "Custom Web Application", quantity = 3, unit_price = 150, total = 450 },
                    new { description = "Technical Support", quantity = 15, unit_price = 30, total = 450 },
                    new { description = "Digital Marketing Campaign", quantity = 2, unit_price = 500, total = 1000 },
                    new { description = "SEO Optimization", quantity = 5, unit_price = 120, total = 600 }
                },
                gross_total = 3400
            },
            load_data_from = (string)null,
            template_id = templateId,
            version = 8,
            export_type = "json",
            expiration = 60,
            output_file = "output.pdf",
            is_cmyk = false,
            image_resample_res = 600,
            direct_download = 0,
            cloud_storage = 1
        };
        request.AddJsonBody(body);
        RestResponse response = await client.ExecuteAsync(request);
        Console.WriteLine(response.Content);
        if (response.IsSuccessful)
        {
            var content = response.Content;
            dynamic result = Newtonsoft.Json.JsonConvert.DeserializeObject(content);
            string fileUrl = result.file;
            string localPath = "f:\\downloaded_output.pdf";
            using (WebClient webClient = new WebClient())
            {
                webClient.DownloadFile(fileUrl, localPath);
            }
            Console.WriteLine($"PDF downloaded successfully to {localPath}");
        }
        else
        {
            Console.WriteLine($"Error: {response.Content}");
        }
    }
}
$vbLabelText   $csharpLabel

Console de débogage Visual Studio affichant une sortie de génération PDF réussie de l'API CraftMyPDF avec des détails de réponse JSON

Sortie générée en PDF:

Facture de Tech Innovations Ltd montrant divers services technologiques, y compris SEO, marketing numérique, support technique, application web, et hébergement cloud, pour un total de 2 907,00 € après remise et taxes

Comment générer des factures professionnelles avec Bootstrap?

IronPDF rend les cadres modernes sans dépendances externes. Cet exemple Bootstrap 5 illustre la génération de factures professionnelles avec un design réactif et le CSS d'impression:

using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string professionalInvoice = @"
<!DOCTYPE html>
<html>
<head>
    <meta charset='utf-8'>
    <link href='___PROTECTED_URL_53___ rel='stylesheet'>
    <style>
        .invoice-header { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; }
        .invoice-table th { background: #f8f9fa; }
        @media print { .invoice-box { page-break-inside: avoid; } }
    </style>
</head>
<body>
    <div class='container my-4'>
        <div class='card shadow-lg invoice-box'>
            <div class='invoice-header p-4'>
                <div class='row align-items-center'>
                    <div class='col-md-8'>
                        <h1 class='mb-0'>INVOICE</h1>
                        <p class='mb-0 opacity-75'>Invoice #INV-2024-0427</p>
                    </div>
                    <div class='col-md-4 text-md-end'>
                        <h3 class='mb-0'>$3,400.00</h3>
                        <small class='opacity-75'>Due: June 27, 2024</small>
                    </div>
                </div>
            </div>

            <div class='card-body p-4'>
                <div class='row mb-4'>
                    <div class='col-md-6'>
                        <h6 class='text-primary text-uppercase mb-2'>From</h6>
                        <strong>Tech Innovations Ltd</strong><br>
                        contact@techinnovations.com
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <h6 class='text-primary text-uppercase mb-2'>Bill To</h6>
                        <strong>Future Solutions GmbH</strong><br>
                        1234 Innovation Drive<br>
                        Berlin, 10115
                    </div>
                </div>

                <table class='table invoice-table'>
                    <thead>
                        <tr>
                            <th>Description</th>
                            <th class='text-center'>Qty</th>
                            <th class='text-end'>Unit Price</th>
                            <th class='text-end'>Total</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>Cloud Hosting Services</td>
                            <td class='text-center'>12</td>
                            <td class='text-end'>€75.00</td>
                            <td class='text-end'>€900.00</td>
                        </tr>
                        <tr>
                            <td>Custom Web Application</td>
                            <td class='text-center'>3</td>
                            <td class='text-end'>€150.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Technical Support</td>
                            <td class='text-center'>15</td>
                            <td class='text-end'>€30.00</td>
                            <td class='text-end'>€450.00</td>
                        </tr>
                        <tr>
                            <td>Digital Marketing Campaign</td>
                            <td class='text-center'>2</td>
                            <td class='text-end'>€500.00</td>
                            <td class='text-end'>€1,000.00</td>
                        </tr>
                        <tr>
                            <td>SEO Optimization</td>
                            <td class='text-center'>5</td>
                            <td class='text-end'>€120.00</td>
                            <td class='text-end'>€600.00</td>
                        </tr>
                    </tbody>
                </table>

                <div class='row justify-content-end'>
                    <div class='col-md-4'>
                        <table class='table table-sm'>
                            <tr>
                                <td>Subtotal:</td>
                                <td class='text-end'><strong>€3,400.00</strong></td>
                            </tr>
                            <tr>
                                <td>Discount (10%):</td>
                                <td class='text-end text-success'>-€340.00</td>
                            </tr>
                            <tr>
                                <td>Tax (5%):</td>
                                <td class='text-end'>€153.00</td>
                            </tr>
                            <tr class='table-primary'>
                                <td><strong>Total Due:</strong></td>
                                <td class='text-end'><strong>€3,213.00</strong></td>
                            </tr>
                        </table>
                    </div>
                </div>

                <div class='alert alert-info mt-4'>
                    <strong>Payment Terms:</strong> Payment due within 30 days. Late payments may incur additional charges.
                </div>

                <div class='row mt-4 pt-3 border-top'>
                    <div class='col-md-6'>
                        <small class='text-muted'>Generated with IronPDF - No external APIs required</small>
                    </div>
                    <div class='col-md-6 text-md-end'>
                        <span class='badge bg-success'>PAID</span>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(professionalInvoice);
pdf.SaveAs("professional-invoice.pdf");
$vbLabelText   $csharpLabel

Sortie: Une facture PDF professionnelle avec des en-têtes de gradient Bootstrap 5, des tableaux réactifs, et des résumés de calcul. IronPDF rend tous les dégradés CSS, les styles de tableau et les classes utilitaires avec une précision parfaite - pas d'appels à des API externes, pas de modèles, pas besoin de connexion internet. Contrairement à l'approche en nuage de CraftMyPDF, IronPDF génère les factures instantanément sur votre serveur avec un contrôle total.

Que fait le code?

  1. Configurez RestClient: Initialisez le client avec le point de terminaison API CraftMyPDF
  2. Ajoutez des en-têtes: Incluez la clé API et le type de contenu pour l'authentification
  3. Préparez le corps de la requête: Créez un objet JSON avec les données du modèle et les options
  4. Envoyez la requête: Exécutez l'appel API pour générer le PDF
  5. Gérez la réponse: Téléchargez le PDF généré ou affichez un message d'erreur

Quelles sont les principales différences pour les fondateurs techniques?

Comment se comparent les approches basées sur le modèle et code-first?

Basé sur le modèle (CraftMyPDF):

  • Les membres de l'équipe non techniques peuvent créer et modifier des modèles
  • Les modèles sont gérés de manière centralisée dans le tableau de bord cloud
  • Les modifications apportées aux modèles ne nécessitent pas de déploiement de code
  • Limité par les contraintes de conception de modèles
  • Idéal pour des documents standardisés avec des mises en page prévisibles

Code-First (IronPDF):

  • Contrôle total sur la mise en page du document en utilisant HTML et CSS
  • Le support JavaScript permet des graphiques dynamiques et des calculs
  • Les modèles font partie de la base de code avec le contrôle de version
  • Flexibilité de conception illimitée avec toute technologie web
  • Idéal pour des documents complexes et dynamiques nécessitant une logique programmatique

Pour les modèles Razor, IronPDF offre un support natif sur MVC Core, MVC Framework, et Razor Pages.

Quelles sont les implications en termes de coûts à différentes échelles?

Structure des coûts CraftMyPDF:

  • Niveau gratuit: 50 appels API/mois avec une limite de 3 modèles
  • Les plans payants commencent à des frais mensuels plus élevés
  • Les coûts par PDF augmentent linéairement avec le volume
  • Frais d'abonnement mensuels/annuels en cours
  • Coûts supplémentaires pour les fonctionnalités premium

Structure des coûts IronPDF:

  • Essai gratuit pour une évaluation complète
  • Licence perpétuelle unique commençant à $799
  • Pas de coûts par PDF ou de limites d'utilisation
  • Comprend un an de mises à jour et de support
  • Options de redistribution OEM pour les produits SaaS

Pour les applications traitant plus de 1 000 PDFs par mois, la licence perpétuelle d'IronPDF offre des coûts prévisibles sans frais récurrents. Le calculateur de licence aide à estimer les coûts totaux de propriété. Envisagez des mises à niveau et des extensions pour les équipes en croissance.

Comment les flux de travail de développement diffèrent-ils?

Flux de travail CraftMyPDF:

  1. Le designer crée le modèle dans l'interface Web
  2. Le développeur mappe les champs JSON au modèle
  3. L'intégration API nécessite une configuration d'authentification
  4. Les tests nécessitent des appels API et l'utilisation de crédits
  5. Les mises à jour de modèles se déroulent en dehors du déploiement de code

Flux de travail IronPDF:

  1. Le développeur écrit le modèle HTML/CSS en code
  2. Tests locaux sans limites API
  3. Les modèles sont déployés avec le code de l'application
  4. Le contrôle de version suit tous les changements
  5. Intégration CI/CD pour des tests automatisés

L'approche autonome d'IronPDF permet des cycles d'itération plus rapides et un développement hors ligne, crucial pour un développement rapide. La bibliothèque prend en charge la journalisation personnalisée et des options de rendu pour le débogage.

Qu'en est-il de la confidentialité des données et de la conformité?

Gestion des données CraftMyPDF:

  • Documents traités sur des serveurs cloud
  • Transmission de données sur internet requise
  • Points de terminaison régionaux pour la conformité
  • Politiques de stockage de fichiers temporaires
  • Accords de traitement des données par des tiers

Gestion des données IronPDF:

  • Traitement sur site garde les données locales
  • Aucun appel API externe ou nécessité Internet
  • Contrôle total sur la sécurité des documents
  • Déploiements conformes HIPAA et GDPR
  • Options de chiffrement pour les données sensibles

Pour les applications manipulant des données sensibles de clients, le traitement local d'IronPDF élimine les préoccupations de confidentialité tierces. Les signatures numériques et la protection par mot de passe offrent des couches de sécurité supplémentaires. La bibliothèque prend également en charge les normes PDF/A et PDF/UA pour la conformité.

À quelle vitesse puis-je ajouter de nouveaux types de documents?

Chronologie CraftMyPDF:

  • Conception de modèles: 1-4 heures selon la complexité
  • Mappage et test des champs: 1-2 heures
  • Dépend de la disponibilité du designer
  • Les flux de travail d'approbation des modèles peuvent ajouter des retards
  • Limité par les capacités de l'éditeur

Chronologie IronPDF:

  • Création de modèles HTML: 30 minutes à 2 heures
  • Utilisez des frameworks web existants tels que Bootstrap
  • Réutilisation des feuilles de style CSS sur les documents
  • Testez localement avec retour immédiat
  • Déployez de nouveaux types de documents avec les sorties régulières

L'approche code-first d'IronPDF réduit généralement le temps de mise sur le marché pour les nouveaux types de documents, surtout lorsqu'on utilise des actifs web et des frameworks existants. La bibliothèque prend en charge les conversions RTF en PDF, DOCX en PDF et Markdown en PDF pour une flexibilité accrue.

Quelles sont les options de licence ?

IronPDF pricing page showing three perpetual license tiers: Lite ($749), Plus ($1,499), and Professional ($2,999), with feature comparisons and an optional royalty-free redistribution add-on for $1,499

IronPDF propose des licences perpétuelles avec des frais uniques. La licence Lite ($799) prend en charge les développeurs individuels sur un projet. La licence Professional ($1,199) couvre plusieurs projets et développeurs. La licence Enterprise ($2,399) répond aux besoins de déploiement étendus des grandes équipes. Chaque licence inclut un an d'assistance et de mises à jour. Une licence de redistribution OEM permet la distribution commerciale. Un essai gratuit est disponible pour évaluation. Consultez les options de licence complètes.

CraftMyPDF utilise une tarification basée sur l'abonnement. Le niveau gratuit convient au développement et aux tests avec des appels API limités. Les plans payants augmentent les limites d'utilisation et ajoutent des fonctionnalités, évoluant avec les besoins de l'entreprise. Les abonnements sont gérés via le tableau de bord CraftMyPDF.

Quelle documentation et quel support sont disponibles?

Que propose IronPDF pour la documentation et le support?

IronPDF fournit une documentation complète comprenant des guides détaillés, des exemples, et une section démarrage rapide. Les ressources couvrent l'utilisation de base à travers les configurations avancées. Les canaux de support incluent une base de connaissances, le support par e-mail, et des demandes de support d'ingénierie. L'équipe de support fonctionne 24/5 pour une assistance rapide. Les guides de dépannage traitent des problèmes courants.

La documentation inclut des références API, des tutoriels, et des exemples de code pour toutes les fonctionnalités. Les journaux de modifications suivent les mises à jour et des jalons soulignent les grandes versions. Pour le support de la migration, voir les guides comparant Aspose, iText, Syncfusion, et d'autres concurrents.

Que propose CraftMyPdf pour la documentation et le support?

CraftMyPDF propose une documentation API détaillant les points de terminaison, les paramètres, et des exemples. Les guides couvrent la création de modèles, les requêtes API, et la gestion des réponses. Le support est disponible par e-mail et via des forums communautaires pour des questions et des aperçus.

Quelle solution PDF devrais-je choisir?

IronPDF et CraftMyPDF offrent tous deux des solutions de génération de PDF capables avec des approches distinctes. CraftMyPDF excelle avec son concepteur de modèles visuel et son traitement basé sur le cloud, tandis qu'IronPDF fournit un contrôle programmatique complet via le rendu HTML.

IronPDF se distingue par son ensemble de fonctionnalités étendues pour les exigences documentaires complexes. Il convertit des HTML, des URLs, et des fichiers en PDFs tout en prenant en charge des fonctionnalités avancées telles que les signatures numériques, la gestion des formulaires et l'édition de documents. Le déploiement autonome sans dépendances externes assure un fonctionnement fiable sur les différentes plates-formes.

Les modèles de licence diffèrent considérablement. Les licences perpétuelles d'IronPDF commencent à $799 avec un essai gratuit pour évaluation. Le pack Iron Suite offre neuf produits pour le prix de deux, offrant une valeur exceptionnelle pour les besoins complets de gestion de documents.

Pour les développeurs nécessitant un contrôle complet sur la génération de PDF avec un support HTML/CSS riche, une manipulation avancée de documents, et des coûts prévisibles, IronPDF fournit une solution fiable. Son documentation étendue, son support réactif, et ses options de déploiement flexibles le rendent adapté aux applications allant de la simple génération de documents à des flux de travail d'entreprise complexes.

Veuillez noterCraftMyPDF est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, approuvé par, ou sponsorisé par CraftMyPDF. 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

Quels sont les avantages d'utiliser une bibliothèque PDF C# par rapport à une solution basée sur une API ?

Une bibliothèque PDF complète comme IronPDF offre des fonctionnalités étendues, une intégration transparente avec les environnements de développement .NET, un support robuste et des options de licence rentables, ce qui en fait un excellent choix pour la gestion de documents complexes.

Comment puis-je convertir du contenu HTML en document PDF en utilisant C# ?

Vous pouvez utiliser IronPDF pour convertir du contenu HTML en documents PDF. Il prend en charge HTML5 et CSS3, garantissant que le contenu web est fidèlement reproduit dans les PDF générés.

Quelles fonctionnalités sont mises en avant dans IronPDF pour la génération de PDF ?

IronPDF offre des signatures numériques, le remplissage de formulaires, l'édition de PDF, des annotations et une compatibilité multiplateforme. Il excelle dans la conversion de HTML, d'URL et d'images en PDF avec des performances et une optimisation robustes.

Comment CraftMyPDF gère-t-il la conception de modèles PDF ?

CraftMyPDF propose un éditeur en ligne avec une interface glisser-déposer qui permet aux utilisateurs de concevoir des modèles PDF sans avoir besoin de coder. Il prend en charge l'intégration de données JSON, permettant la création de documents PDF personnalisés.

Quelles sont les options de licence disponibles pour les outils PDF comme IronPDF ?

IronPDF propose des options de licence flexibles, notamment les licences Lite, Professional, et Enterprise moyennant un tarif unique. Il offre également un essai gratuit pour permettre aux nouveaux utilisateurs d'explorer ses fonctionnalités.

Comment puis-je intégrer une API de génération de PDF dans mon application C# ?

Pour intégrer une API de génération de PDF comme CraftMyPDF, vous devez créer un compte, sélectionner un plan approprié, obtenir une clé API et utiliser des bibliothèques telles que System.Net.Http et RestSharp pour effectuer des appels API.

Quelles ressources d'assistance sont disponibles pour les développeurs using IronPDF ?

IronPDF fournit une documentation extensive, des tutoriels et un support technique 24/5. Ces ressources aident les développeurs à mettre en œuvre et à résoudre efficacement les problèmes de la bibliothèque dans leurs projets.

Comment installer IronPDF dans une application C# ?

IronPDF peut être installé via le gestionnaire de packages NuGet dans Visual Studio, en utilisant la console du gestionnaire de packages NuGet, ou en téléchargeant le package directement depuis le site NuGet.

Comment IronPDF améliore-t-il la sécurité et l'interactivité des documents PDF ?

IronPDF prend en charge des fonctionnalités telles que les signatures numériques et la gestion des formulaires, qui améliorent la sécurité et l'interactivité des documents, ce qui le rend adapté pour la gestion complète des 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me