IRONSOFTWAREHOME
OUTILS PDF

IronPDF vs PDFTron (Apryse) : La comparaison complète des bibliothèques PDF C# pour 2025

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 19 juillet 2026

Vous cherchez la bonne bibliothèque PDF pour votre projet .NET ? Cette comparaison complète entre IronPDF et PDFTron (désormais Apryse) analyse les fonctionnalités, les prix, les performances et l'expérience développeur pour vous aider à prendre une décision éclairée. Que vous créiez des applications web, des logiciels de bureau ou des services cloud, choisir le bon ensemble d'outils PDF peut avoir un impact significatif sur la vitesse de développement et le succès du projet.

Résumé de la comparaison rapide

CatégorieCaractéristiques/AspectIronPDFPDFTron (Apryse)Avantage clé
Architecture de basePhilosophie de conceptionSimplicité d'abord, moteur Chrome V8Moteur personnalisé axé sur l'entrepriseIronPDF : Un développement plus rapide
Complexité de l'APIDes méthodes simples comme RenderHtmlAsPdf()Approche multi-classes, contrôle granulaireIronPDF : Code beaucoup moins standardisé
Courbe d'apprentissage1-2 jours en général1 à 2 semaines en généralIronPDF : Adoption plus rapide
Support de plateformeMultiplateformeSupport natif, paquet uniquePlusieurs paquets/modules requisIronPDF : Un déploiement plus simple
Versions .NET.NET 10, 9, 8, 7, 6, 5, Core 3.1+, Framework 4.6.2+Assistance similaire avec configuration supplémentaireLes deux : prise en charge de cadres modernes
HTML en PDFMoteur de renduMoteur Chrome V8 completMoteur personnalisé (via le module HTML2PDF)IronPDF : fidélité au navigateur de plus de 98
Support JavaScriptPrise en charge complète des délais de renduSoutien limitéIronPDF : Prêt pour le contenu dynamique
Support MS OfficeDOCX en PDFIntégrée DocxToPdfRendererPrise en charge de la conversion Native OfficePDFTron : une meilleure fidélité au bureau
Support CAONon disponibleDWG, DXF, DGN vers PDFPDFTron : flux de travail CAO
PerformanceVitesse de rendu HTMLRendu par moteur Chrome ; varie selon la complexité du contenuRendu par moteur personnalisé ; contactez Apryse pour les benchmarksVarie selon le cas d'utilisation
Utilisation de la mémoireSupérieur en raison du processus Chrome intégré ; supporte le rendu asynchrone/parallelSurcharge réduite pour les conversions simples (moteur personnalisé)Apryse : Moins de mémoire pour une utilisation de base
Licensing & PricingNiveau d'entréeLite : $999 (1 dev, 1 projet)Contactez l'équipe commerciale pour la tarificationIronPDF : Une tarification transparente
EnterpriseProfessional : $2,399 (10 développeurs)Contactez l'équipe commerciale pour la tarificationIronPDF : Tarification transparente publiée
SoutienSupport inclusOui, support technique 24/5Varie selon le niveau de licenceIronPDF : Support inclus
Parfait pourCas d'UtilisationApplications web modernes, rapports HTML, développement rapideFlux de travail à forte intensité documentaire, conversion CAO/BureautiqueEn fonction du contexte

Qu'est-ce qu'IronPDF et PDFTron (Apryse) ?

Aperçu d'IronPDF

IronPDF est une bibliothèque complète .NET PDF qui simplifie la création, l'édition et la manipulation de PDF pour les développeurs. Construit sur un moteur de rendu Chrome, il excelle à convertir HTML, CSS et JavaScript en documents PDF parfaits en pixels. La conception API simple de la bibliothèque permet aux développeurs d'intégrer la fonctionnalité PDF avec un code minimal, ce qui la rend idéale pour les applications Web, les systèmes de rapport et l'automatisation documentaire.

Aperçu de PDFTron (Apryse)

PDFTron, rebaptisé Apryse en février 2023, est un SDK PDF axé sur l'entreprise qui offre des capacités étendues de traitement des documents. Initialement développé pour les flux de travail de documents complexes, il offre un support robuste pour divers formats de fichiers, y compris Microsoft Office, les dessins CAD et les types de documents spécialisés. PDFTron Systems Inc., un leader mondial dans la technologie de traitement des documents, a annoncé son rebranding en Apryse ; rassemblant 13 entreprises, y compris iText, Windward, Eversign, et plus encore.

Comment créer un projet ASP.NET pour la génération de PDF ?

La mise en place d'un projet ASP.NET pour la génération de PDF nécessite une configuration appropriée, quel que soit la bibliothèque que vous choisissez. Suivez ces étapes pour créer une base pour l'intégration soit d'IronPDF soit de PDFTron :

  1. Ouvrez Visual Studio 2022 ou une version ultérieure
  2. Cliquez sur "Créer un nouveau projet"
  3. Sélectionnez "Application Web ASP.NET Core" (.NET 6.0 ou plus recommandé)
  4. Choisissez votre nom de projet et l'emplacement
  5. Sélectionnez "Application Web (Modèle-Vue-Contrôleur)" ou "API Web" en fonction de vos besoins
  6. Assurez-vous que ".NET 8.0" ou une version ultérieure est sélectionnée pour une compatibilité optimale

Fenêtre de dialogue pour nouveau projet Visual Studio montrant la sélection d'une application Web ASP.NET Core Boîte de dialogue de Nouveau Projet de Visual Studio affichant les modèles de projet ASP.NET pour l'intégration de bibliothèque PDF

Pour les applications Web Forms :

  • Sélectionnez "Application Web ASP.NET (.NET Framework)"
  • Choisissez "Web Forms" dans les options de modèle
  • Cliquez sur "Créer" pour générer la structure du projet

Sélection du modèle Web Forms dans l'assistant de création de projet Visual Studio Sélection du modèle Web Forms pour les applications ASP.NET traditionnelles avec des capacités PDF

Comment installer IronPDF dans mon projet C# ?

IronPDF propose plusieurs méthodes d'installation pour s'adapter à différents flux de travail de développement. Dans Visual Studio, cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions et sélectionnez "Gérer les packages NuGet...". À partir de là, il vous suffit de rechercher IronPDF et d'installer la dernière version.

Méthode 1 : Utilisation du gestionnaire de packages Visual Studio

L'approche la plus simple utilise le gestionnaire de packages NuGet intégré de Visual Studio :

  1. Cliquez avec le bouton droit sur votre projet dans l'Explorateur de solutions
  2. Sélectionnez "Gérer les packages NuGet"
  3. Cliquez sur "Parcourir" et recherchez "IronPDF"
  4. Cliquez sur "Installer" sur le package IronPDF

Menu contextuel de l'Explorateur de solutions montrant l'option Gérer les packages NuGet Accès au gestionnaire de packages NuGet via l'Explorateur de solutions de Visual Studio pour l'installation d'IronPDF

Menu Projet dans Visual Studio montrant les options de gestion des packages Accès alternatif au gestionnaire de packages NuGet via le menu Projet de Visual Studio

Interface du gestionnaire de packages NuGet montrant l'installation de IronPDF Installation d'IronPDF via le gestionnaire de packages NuGet avec des informations sur les versions et les dépendances

Méthode 2 : Utilisation de la console du gestionnaire de packages

Pour les développeurs qui préfèrent les outils en ligne de commande :

# Open Package Manager Console in Visual Studio
# Tools > NuGet Package Manager > Package Manager Console
Install-Package IronPdf

# For specific version installation
Install-Package IronPdf -Version 2025.7.0
SHELL

Méthode 3 : Installation par téléchargement direct

Pour les environnements sans accès à NuGet :

  1. Téléchargez depuis le site officiel d'IronPDF
  2. Extrayez le fichier ZIP dans le répertoire de votre projet
  3. Dans Visual Studio, cliquez droit sur "Références" → "Ajouter une référence"
  4. Parcourez et sélectionnez IronPdf.dll

Méthode 4 : Utilisation de .NET CLI

Pour les passionnés de ligne de commande et les pipelines CI/CD :

# Navigate to your project directory
cd MyProject

# Install IronPDF
dotnet add package IronPdf

# Restore packages
dotnet restore
SHELL

Comment installer le SDK PDFTron (Apryse) ?

L'installation de PDFTron implique plus d'étapes en raison de son architecture modulaire et de son orientation entreprise. Le processus varie en fonction de la plateforme cible et des fonctionnalités requises.

Prérequis

  • Visual Studio 2019 ou ultérieur
  • Charge de travail de développement pour bureau .NET
  • Outils de développement .NET Framework 4.5.1+
  • Téléchargement du SDK PDFTron

Étapes d'intégration manuelle

  1. Extrayez le SDK

    # Example extraction path
    PDFNET_BASE = C:/PDFTron/PDFNetDotNet4/
    SHELL
  2. Initialisez avec la clé de licence

    // Initialize PDFTron with your license key
    pdftron.PDFNet.Initialize("your-license-key-here");
    
    // Note: Demo keys expire after evaluation period
    // Contact Apryse sales for production licenses
  3. Copiez les bibliothèques requises

    • Copiez le dossier Lib de PDFNET_BASE vers votre répertoire de projet
    • Ajoutez des références à la fois à PDFNetLoader.dll et à PDFNet.dll spécifique à la plateforme
  4. Configurez la propriété Copier local

Propriété Copier local du PDFTron définie sur Faux dans Visual Studio Définir la propriété Copier local de PDFNet.dll sur Faux pour un déploiement PDFTron approprié

  1. Mettez à jour App.config

    <configuration>
        <runtime>
            <loadFromRemoteSources enabled="true" />
        </runtime>
    </configuration>
    XML
  2. Configurez les événements post-construction

    xcopy $(ProjectDir)Lib\PDFNet $(TargetDir)PDFNet /S /I /Y
    SHELL

Installation NuGet (Simplifié)

Pour une approche plus simplifiée :

  1. Ouvrez le gestionnaire de packages NuGet
  2. Recherchez "PDFTron.NET.x64" ou le package spécifique à la plateforme
  3. Installez le package approprié pour votre architecture

Interface d'installation du package NuGet PDFTron Installation de PDFTron via le gestionnaire de packages NuGet avec des packages spécifiques à la plateforme

PDFTron offre une plus large variété de plus de 30 types d'annotations comparé aux 10+ types de ComPDFKit. Cependant, cet ensemble de fonctionnalités étendu nécessite une sélection minutieuse des modules lors de l'installation.

Comment puis-je convertir une URL en PDF en utilisant ces bibliothèques ?

Les deux bibliothèques fournissent une conversion URL vers PDF, mais avec des approches et capacités différentes. Examinons les détails de l'implémentation et les caractéristiques de performance de chacune.

URL vers PDF avec IronPDF

Le moteur de rendu Chrome d'IronPDF offre un support exceptionnel pour les normes Web modernes :

using IronPdf;

// Initialize the Chrome renderer with advanced options
var renderer = new ChromePdfRenderer();

// Configure rendering for optimal results
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.RenderDelay = 1000; // Wait for JS execution

// Handle authentication if needed
renderer.LoginCredentials = new ChromeHttpLoginCredentials() {
    Username = "user@domain.com",
    Password = "secure_password"
};

// Render URL to PDF with full browser capabilities
var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");

// Add metadata for document management
pdf.MetaData.Author = "Development Team";
pdf.MetaData.Title = "Website Export - " + DateTime.Now.ToString("yyyy-MM-dd");

// Save with compression
pdf.CompressImages(90);
pdf.SaveAs("website-export.pdf");

Le moteur Chrome dans IronPDF gère des scénarios complexes, y compris :

  • Applications monopage (SPA) avec beaucoup de JavaScript
  • Conceptions réactives avec des requêtes média
  • Polices Web et feuilles de style externes
  • Chargement de contenu AJAX
  • Animations CSS et transitions

IronPDF supporte ces scénarios de rendu dès le départ : nuget.org/packages/IronPdf. Les récentes améliorations de performance ont accru la vitesse de rendu, particulièrement pour les applications web complexes.

URL vers PDF avec PDFTron (Apryse)

PDFTron nécessite le module HTML2PDF pour la conversion de contenu Web :

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

class UrlToPdfConverter 
{
    public static void ConvertUrlToPdf(string url, string outputPath)
    {
        // Initialize PDFTron with license
        PDFNet.Initialize("your-license-key");
        
        // Create a new PDF document
        using (PDFDoc doc = new PDFDoc())
        {
            // Initialize HTML2PDF converter
            HTML2PDF converter = new HTML2PDF();
            
            // Configure conversion settings
            HTML2PDF.WebPageSettings settings = new HTML2PDF.WebPageSettings();
            settings.SetPrintBackground(true);
            settings.SetLoadImages(true);
            
            // Set page dimensions
            converter.SetPaperSize(PrinterMode.PaperSize.e_letter);
            converter.SetMargins(0.5, 0.5, 0.5, 0.5);
            
            // Insert URL content
            converter.InsertFromURL(url);
            
            // Perform conversion
            if (converter.Convert(doc))
            {
                // Save the resulting PDF
                doc.Save(outputPath, SDFDoc.SaveOptions.e_linearized);
                Console.WriteLine($"Successfully converted {url} to {outputPath}");
            }
            else
            {
                Console.WriteLine("Conversion failed");
            }
        }
    }
}

Considérations importantes pour PDFTron HTML2PDF :

  • Le SDK de PDFTron est coté en fonction de l'étendue de la technologie (API, fonctionnalités) et de l'étendue de la distribution (utilisateurs externes ou internes).
  • Support JavaScript limité par rapport aux moteurs de navigateur
  • Peut nécessiter des configurations supplémentaires pour les mises en page complexes
  • Mieux adapté aux documents HTML simples

Comment créer des PDF à partir de chaînes HTML ?

Créer des PDF à partir de chaînes HTML est essentiel pour générer des rapports, factures et documents dynamiques. Les deux bibliothèques traitent cela différemment.

Chaîne HTML vers PDF avec IronPDF

IronPDF excelle dans le rendu de HTML complexe avec un support complet de CSS3 et JavaScript :

using IronPdf;
using System.Text;

public class HtmlStringToPdfConverter
{
    public static PdfDocument GenerateInvoice(InvoiceData data)
    {
        // Build dynamic HTML with modern CSS
        var html = new StringBuilder();
        html.Append(@"
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset='UTF-8'>
            <style>
                @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;700&display=swap');
                
                body {
                    font-family: 'Roboto', sans-serif;
                    margin: 0;
                    padding: 20px;
                    color: #333;
                }
                
                .invoice-header {
                    display: flex;
                    justify-content: space-between;
                    border-bottom: 2px solid #007bff;
                    padding-bottom: 20px;
                    margin-bottom: 30px;
                }
                
                .company-logo {
                    width: 150px;
                    height: auto;
                }
                
                .invoice-details {
                    text-align: right;
                }
                
                .invoice-number {
                    font-size: 24px;
                    font-weight: 700;
                    color: #007bff;
                }
                
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin-top: 20px;
                }
                
                th {
                    background-color: #f8f9fa;
                    padding: 12px;
                    text-align: left;
                    border-bottom: 2px solid #dee2e6;
                }
                
                td {
                    padding: 12px;
                    border-bottom: 1px solid #dee2e6;
                }
                
                .total-row {
                    font-weight: 700;
                    font-size: 18px;
                    background-color: #e9ecef;
                }
                
                @media print {
                    body { margin: 0; }
                    .no-print { display: none; }
                }
            </style>
        </head>
        <body>
        ");
        
        // Add invoice header
        html.Append($@"
            <div class='invoice-header'>
                <div>
                    <img src='data:image/png;base64,{data.CompanyLogoBase64}' class='company-logo' alt='Company Logo'>
                    <h2>{data.CompanyName}</h2>
                    <p>{data.CompanyAddress}</p>
                </div>
                <div class='invoice-details'>
                    <div class='invoice-number'>Invoice #{data.InvoiceNumber}</div>
                    <p>Date: {data.InvoiceDate:yyyy-MM-dd}</p>
                    <p>Due: {data.DueDate:yyyy-MM-dd}</p>
                </div>
            </div>
        ");
        
        // Add line items table
        html.Append(@"
            <table>
                <thead>
                    <tr>
                        <th>Description</th>
                        <th>Quantity</th>
                        <th>Unit Price</th>
                        <th>Total</th>
                    </tr>
                </thead>
                <tbody>
        ");
        
        foreach (var item in data.LineItems)
        {
            html.Append($@"
                <tr>
                    <td>{item.Description}</td>
                    <td>{item.Quantity}</td>
                    <td>${item.UnitPrice:F2}</td>
                    <td>${item.Total:F2}</td>
                </tr>
            ");
        }
        
        html.Append($@"
                </tbody>
                <tfoot>
                    <tr class='total-row'>
                        <td colspan='3'>Total</td>
                        <td>${data.Total:F2}</td>
                    </tr>
                </tfoot>
            </table>
        </body>
        </html>
        ");
        
        // Configure renderer for optimal output
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.CreatePdfFormsFromHtml = true;
        
        // Generate PDF with proper base path for assets
        var pdf = renderer.RenderHtmlAsPdf(html.ToString());
        
        // Add security if needed
        pdf.SecuritySettings.UserPassword = data.CustomerEmail;
        pdf.SecuritySettings.AllowUserPrinting = true;
        pdf.SecuritySettings.AllowUserCopyPasteContent = false;
        
        return pdf;
    }
}

Principaux avantages du rendu HTML d'IronPDF :

  • Support complet de CSS3, y compris les mises en page flexbox et grid
  • Intégration des polices Google et polices Web
  • Bibliothèques de graphiques JavaScript (Chart.js, D3.js) parfaitement rendues
  • Support de conception réactive avec contrôle du viewport
  • Intégration d'image Base64 pour des documents autonomes

Chaîne HTML vers PDF avec PDFTron (Apryse)

Approche de PDFTron pour la conversion de chaîne HTML :

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

public class PdfTronHtmlConverter
{
    public static void ConvertHtmlString(string htmlContent, string outputPath)
    {
        PDFNet.Initialize("your-license-key");
        
        using (PDFDoc doc = new PDFDoc())
        {
            // Create HTML2PDF converter instance
            HTML2PDF converter = new HTML2PDF();
            
            // Configure page settings
            converter.SetPaperSize(PrinterMode.PaperSize.e_letter);
            converter.SetLandscape(false);
            converter.SetMargins(1.0, 1.0, 1.0, 1.0, HTML2PDF.e_inches);
            
            // Enable images and backgrounds
            HTML2PDF.WebPageSettings settings = new HTML2PDF.WebPageSettings();
            settings.SetPrintBackground(true);
            settings.SetLoadImages(true);
            settings.SetJavaScriptDelay(1000); // Limited JS support
            
            // Insert HTML content
            converter.InsertFromHtmlString(htmlContent);
            
            // Convert to PDF
            if (converter.Convert(doc))
            {
                // Post-processing options
                doc.Save(outputPath, SDFDoc.SaveOptions.e_linearized);
            }
        }
    }
}

Limitations de PDFTron HTML à considérer :

  • Support CSS basique (pas de mises en page avancées)
  • Exécution limitée de JavaScript
  • L'intégration de polices nécessite des configurations supplémentaires
  • Mieux adapté aux mises en page de documents simples

Comment puis-je convertir des pages ASPX en PDF ?

La conversion de pages ASPX en PDF est une exigence courante pour les applications ASP.NET. IronPDF fournit un support natif, tandis que PDFTron nécessite des solutions de contournement.

ASPX vers PDF avec IronPDF

IronPDF offre une conversion ASPX transparente avec une seule ligne de code :

using IronPdf;

public partial class InvoicePage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        // Render the current ASPX page as PDF on page load
        if (Request.QueryString["pdf"] == "true")
        {
            // Configure PDF output options
            AspxToPdf.RenderThisPageAsPdf(
                AspxToPdf.FileBehavior.InBrowser,
                "Invoice_" + DateTime.Now.ToString("yyyyMMdd") + ".pdf");
        }
    }
    
    protected void ExportToPdfButton_Click(object sender, EventArgs e)
    {
        // Advanced configuration for ASPX to PDF
        IronPdf.AspxToPdf.RenderThisPageAsPdf(
            IronPdf.AspxToPdf.FileBehavior.Attachment,
            "Invoice.pdf",
            new ChromePdfRenderOptions()
            {
                PaperSize = PdfPaperSize.A4,
                MarginTop = 20,
                MarginBottom = 20,
                CssMediaType = PdfCssMediaType.Print,
                EnableJavaScript = true,
                CreatePdfFormsFromHtml = true,
                FitToPaper = true
            });
    }
}

Pour plus de contrôle sur le processus de rendu :

// In Global.asax.cs or Startup.cs
public static void ConfigureAspxToPdf()
{
    // Set global defaults for all ASPX to PDF conversions
    AspxToPdf.GlobalSettings.PaperSize = PdfPaperSize.A4;
    AspxToPdf.GlobalSettings.PrintHtmlBackgrounds = true;
    AspxToPdf.GlobalSettings.EnableJavaScript = true;
    AspxToPdf.GlobalSettings.CssMediaType = PdfCssMediaType.Screen;
    
    // Custom headers and footers
    AspxToPdf.GlobalSettings.HtmlHeader = new HtmlHeaderFooter()
    {
        HtmlFragment = "<div style='text-align: center; font-size: 12px;'>{page} of {total-pages}</div>",
        Height = 25
    };
}

La fonctionnalité d'ASPX vers PDF d'IronPDF préserve :

  • ViewState et valeurs de formulaire
  • Données d'état de session
  • Style CSS et mises en page
  • Contenu rendu par JavaScript
  • Mises en page de la page maître

Alternative ASPX avec PDFTron

Apryse (PDFTron) ne fournit pas de moteur de rendu ASPX-vers-PDF intégré équivalent à la classe AspxToPdf de IronPDF. Les développeurs contournent généralement cela en capturant d'abord la sortie de la page ASPX en tant que chaîne de texte HTML :

// Capture ASPX output as HTML, then convert
public void ConvertAspxWithPdfTron()
{
    // Render ASPX to string first
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    
    // Render the page to HTML
    this.RenderControl(hw);
    string htmlContent = sw.ToString();
    
    // Then use PDFTron's HTML2PDF
    PDFNet.Initialize("your-license-key");
    
    using (PDFDoc doc = new PDFDoc())
    {
        HTML2PDF converter = new HTML2PDF();
        converter.InsertFromHtmlString(htmlContent);
        converter.Convert(doc);
        
        // Send to browser
        byte[] pdfBytes = doc.Save(SDFDoc.SaveOptions.e_linearized);
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(pdfBytes);
        Response.End();
    }
}

Comment puis-je convertir des images en PDF ?

La conversion d'images en PDF est essentielle pour l'archivage de documents et la création de portfolios. Les deux bibliothèques offrent cette fonctionnalité avec des approches différentes.

Image vers PDF avec IronPDF

IronPDF fournit une classe ImageToPdfConverter dédiée pour un traitement par lots efficace :

using IronPdf;
using System.IO;
using System.Linq;

public class ImagePdfGenerator
{
    public static void CreatePhotoAlbum(string imageFolder, string outputPath)
    {
        // Get all supported image files
        var supportedExtensions = new[] { ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".svg" };
        var imageFiles = Directory.GetFiles(imageFolder)
            .Where(f => supportedExtensions.Contains(Path.GetExtension(f).ToLower()))
            .OrderBy(f => f);
        
        // Convert images to PDF with options
        var pdf = ImageToPdfConverter.ImageToPdf(imageFiles, ImageBehavior.FitToPage);
        
        // Add metadata
        pdf.MetaData.Title = "Photo Album";
        pdf.MetaData.Author = "Photography Department";
        pdf.MetaData.CreationDate = DateTime.Now;
        
        // Apply compression for smaller file size
        pdf.CompressImages(80); // 80% quality
        
        // Save the PDF
        pdf.SaveAs(outputPath);
    }
    
    public static void CreateThumbnailCatalog(List<ProductImage> images)
    {
        var renderer = new ChromePdfRenderer();
        
        // Build HTML with image grid
        var html = @"
        <html>
        <head>
            <style>
                .image-grid {
                    display: grid;
                    grid-template-columns: repeat(3, 1fr);
                    gap: 20px;
                    padding: 20px;
                }
                .image-item {
                    text-align: center;
                }
                .image-item img {
                    max-width: 100%;
                    height: 200px;
                    object-fit: cover;
                    border: 1px solid #ddd;
                }
                .image-caption {
                    margin-top: 10px;
                    font-size: 12px;
                }
            </style>
        </head>
        <body>
            <h1>Product Catalog</h1>
            <div class='image-grid'>";
        
        foreach (var image in images)
        {
            html += $@"
                <div class='image-item'>
                    <img src='data:image/jpeg;base64,{image.Base64Data}' />
                    <div class='image-caption'>{image.ProductName}</div>
                </div>";
        }
        
        html += "</div></body></html>";
        
        // Render with optimal settings for images
        renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("product-catalog.pdf");
    }
}

Fonctionnalités avancées de traitement d'image :

  • Conversion SVG en PDF avec préservation de la qualité vectorielle
  • Traitement par lots avec optimisation mémoire
  • Options de dimensionnement et de positionnement personnalisées
  • Préservation des données EXIF

Image vers PDF avec PDFTron (Apryse)

PDFTron utilise son API de conversion pour le traitement des images :

using pdftron;
using pdftron.PDF;
using pdftron.SDF;

public class PdfTronImageConverter
{
    public static void ConvertImageToPdf(string imagePath, string outputPath)
    {
        PDFNet.Initialize("your-license-key");
        
        using (PDFDoc doc = new PDFDoc())
        {
            // Use Convert API for image to PDF
            pdftron.PDF.Convert.ToPdf(doc, imagePath);
            
            // Additional image processing
            PageIterator itr = doc.GetPageIterator();
            while (itr.HasNext())
            {
                Page page = itr.Current();
                
                // Adjust page size to image
                Rect crop_box = page.GetCropBox();
                page.SetMediaBox(crop_box);
                
                itr.Next();
            }
            
            // Save optimized PDF
            doc.Save(outputPath, SDFDoc.SaveOptions.e_linearized);
        }
    }
    
    public static void CreateMultiPageImagePdf(string[] imagePaths, string outputPath)
    {
        PDFNet.Initialize("your-license-key");
        
        using (PDFDoc doc = new PDFDoc())
        {
            ElementBuilder builder = new ElementBuilder();
            ElementWriter writer = new ElementWriter();
            
            foreach (string imagePath in imagePaths)
            {
                // Create a new page for each image
                Page page = doc.PageCreate();
                writer.Begin(page);
                
                // Add image to page
                Image img = Image.Create(doc, imagePath);
                Element element = builder.CreateImage(img, 0, 0, 612, 792);
                writer.WritePlacedElement(element);
                
                writer.End();
                doc.PagePushBack(page);
            }
            
            doc.Save(outputPath, SDFDoc.SaveOptions.e_linearized);
        }
    }
}

Quelles sont les options de licence et les coûts ?

Comprendre les licences est crucial pour la budgétisation et la conformité. Les deux bibliothèques ont des modèles de tarification très différents.

Licence IronPDF

IronPDF propose 3 éditions tarifaires, de $999 à $2,399. Un essai gratuit d'IronPDF est également disponible. IronPDF offre une tarification transparente et publiée (à partir d'avril 2026) :

Niveaux de Licence :

  • Lite License: $999

    • 1 développeur
    • 1 emplacement
    • 1 projet
    • Idéal pour les développeurs individuels ou les petits projets
  • Plus License: $1,499

    • 3 développeurs
    • 3 emplacements
    • 3 projets
    • Parfait pour les petites équipes
  • Professional License: $2,399

    • 10 développeurs
    • 10 emplacements
    • 10 projets
    • Convient aux grandes équipes
  • Unlimited License: $4,799

    • Développeurs illimités
    • Sites illimités
    • Projets illimités

Options Supplémentaires :

  • Redistribution libre de droits : +$2,399 (une fois)
  • Licences SaaS/OEM disponibles
  • Pack Iron Suite : Obtenez 10 produits pour le prix de 2

Toutes les licences d'équipe sont non transférables et le partage de licences en dehors d'une organisation ou d'une relation agence/client est interdit.

Licences PDFTron (Apryse)

La licence d'Apryse (anciennement PDFTron) est basée sur des devis, sans tarification publiée. Contactez directement l'équipe commerciale d'Apryse pour un devis à apryse.com/pricing.

Caractéristiques de la licence :

  • Tous les prix nécessitent l'engagement direct des ventes - aucun achat en libre-service
  • Les modules supplémentaires (par exemple, HTML2PDF, conversion Office) peuvent nécessiter une licence séparée
  • Des négociations de licences complexes sont généralement nécessaires pour les déploiements d'entreprise
  • La tarification par module peut augmenter le coût total de possession

Différences Clés :

  • IronPDF : Licences perpétuelles, paiement unique
  • PDFTron : Souvent basées sur l'abonnement ou les frais annuels
  • IronPDF : Toutes les fonctionnalités incluses dans la licence de base
  • PDFTron : Fonctions de base avec modules payants

Comment se comparent les options de support ?

Le support développeur peut faire ou défaire les délais de projet. Voici comment chaque fournisseur aborde l'assistance clients.

Support IronPDF

IronPDF inclut une assistance professionnelle avec toutes les licences :

  • Support ingénierie 24/5 par e-mail
  • Accès direct à l'équipe de développement
  • Temps de réponse typique : 24-48 heures
  • Documentation complète
  • Tutoriels vidéo et exemples de code

La bibliothèque IronPDF fonctionne dans Azure WebApps, Functions et WebJobs. Elle fonctionne à la fois dans les variantes Linux et Windows, bien que je recommande les Functions et WebApps variant Windows, car nettement mieux testées et plus faciles à installer.

Support PDFTron (Apryse)

Le support de PDFTron varie selon le niveau de licence :

  • Le coût de PDFTron est élevé. L'importance pour notre entreprise justifie le coût, mais c'était certainement un obstacle pour nous lors de la comparaison de ce produit avec d'autres solutions PDF Web.
  • Support basé sur forum pour les licences basiques
  • Plans de support payants disponibles
  • Parfois, le support peut être insuffisant et les développeurs doivent se débrouiller seuls.
  • Les temps de réponse varient en fonction du niveau de support

Quelles sont les caractéristiques de performance ?

La performance impacte l'expérience utilisateur et les coûts de serveur. Examinons les données de performance réelles.

Performance d'IronPDF

Les améliorations récentes ont considérablement amélioré les performances d'IronPDF :

// Optimized batch processing example
public async Task BatchConvertWithPerformanceMonitoring()
{
    var renderer = new ChromePdfRenderer();
    
    // Configure for performance
    renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen;
    renderer.RenderingOptions.RenderDelay = 0; // No delay for static content
    renderer.RenderingOptions.Timeout = 30; // 30 second timeout
    
    // Enable parallel processing
    var tasks = new List<Task<PdfDocument>>();
    var urls = GetUrlsToConvert();
    
    // Process in parallel with throttling
    using (var semaphore = new SemaphoreSlim(4)) // Max 4 concurrent
    {
        foreach (var url in urls)
        {
            await semaphore.WaitAsync();
            
            tasks.Add(Task.Run(async () =>
            {
                try
                {
                    return await renderer.RenderUrlAsPdfAsync(url);
                }
                finally
                {
                    semaphore.Release();
                }
            }));
        }
        
        var results = await Task.WhenAll(tasks);
        
        // Merge results if needed
        var merged = PdfDocument.Merge(results);
        merged.SaveAs("batch-output.pdf");
    }
}

Caractéristiques de performance :

  • Le HTML simple se rend plus rapidement que les pages complexes avec de nombreuses ressources externes
  • Le HTML complexe avec CSS/JS prend plus de temps en raison du rendu complet de Chrome
  • IronPDF a des variantes Async des méthodes de rendu comme documenté ici ironpdf.com/examples/async. Utiliser Parallel.ForEach était la stratégie la plus performante pour le rendu par lots de HTML en PDF pour mon cas d'utilisation

Performance de PDFTron (Apryse)

Le moteur personnalisé d'Apryse a généralement une surcharge réduite pour les conversions de documents simples :

  • Plus rapide pour le HTML de base avec CSS limité (pas besoin de rendu complet du navigateur)
  • Efficace pour les conversions de documents Office
  • Empreinte mémoire plus faible par rapport au rendu basé sur Chrome
  • Bien adapté pour les flux de travail de documents simples à volume élevé

Cependant, les utilisateurs rapportent des problèmes avec des scénarios complexes :

  • Des bugs apparaissent parfois. Parfois des bugs assez préjudiciables qui auraient probablement dû être vus lors des tests QA. Cela peut prendre un certain temps pour qu'ils finissent par être corrigés.

Support des cadres CSS modernes et Bootstrap

À mesure que les applications d'entreprise adoptent de plus en plus des cadres CSS modernes comme Bootstrap, Tailwind et Foundation, la capacité à convertir précisément ces cadres en PDF devient un critère de sélection critique pour les bibliothèques PDF.

IronPDF : Support Complet de Cadre Basé sur Chromium

Le moteur de rendu Chrome V8 d'IronPDF offre une prise en charge complète pour tous les cadres CSS modernes et normes Web :

Bootstrap 5 : Prise en charge complète de Flexbox et CSS Grid avec tous les utilitaires responsifs Bootstrap 4 : Compatibilité totale avec les composants de cartes, les systèmes de navigation et les mises en page de formulaires.

  • Tailwind CSS : Toutes les classes utilitaires, les modificateurs de réactivité et les modèles de compilation JIT
  • Fondation : Prise en charge complète du système de grille et de la bibliothèque de composants
  • CSS3 moderne : Flexbox, CSS Grid, variables CSS, animations, transformations et transitions
  • Frameworks JavaScript : React, Vue, Angular ; rendu de composants avec prise en charge complète de l'interactivité

Validation en production : La page d'accueil Bootstrap et les modèles officiels se convertissent avec une fidélité de 98 % ou plus par rapport au navigateur.

Exemple de Code : Tableau de Bord d'Entreprise avec Tables de Données

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapDashboard = @"
<!DOCTYPE html>
<html>
<head>
    <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
    <div class='container-fluid py-4'>
        <div class='d-flex justify-content-between align-items-center mb-4'>
            <h1>Sales Dashboard - Q1 2025</h1>
            <span class='badge bg-success fs-5'>+15.3% YoY</span>
        </div>

        <div class='row g-4 mb-4'>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h6 class='text-muted'>Total Revenue</h6>
                        <h2 class='text-primary'>$1.2M</h2>
                        <small class='text-success'>↑ 12%</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h6 class='text-muted'>New Customers</h6>
                        <h2 class='text-info'>1,847</h2>
                        <small class='text-success'>↑ 8%</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h6 class='text-muted'>Avg Order Value</h6>
                        <h2 class='text-warning'>$649</h2>
                        <small class='text-danger'>↓ 3%</small>
                    </div>
                </div>
            </div>
            <div class='col-md-3'>
                <div class='card text-center'>
                    <div class='card-body'>
                        <h6 class='text-muted'>Conversion Rate</h6>
                        <h2 class='text-success'>3.2%</h2>
                        <small class='text-success'>↑ 0.4%</small>
                    </div>
                </div>
            </div>
        </div>

        <div class='card'>
            <div class='card-header bg-primary text-white'>
                <h5 class='mb-0'>Top Products by Revenue</h5>
            </div>
            <div class='card-body p-0'>
                <table class='table table-striped table-hover mb-0'>
                    <thead class='table-light'>
                        <tr>
                            <th>Product</th>
                            <th>Category</th>
                            <th>Units Sold</th>
                            <th class='text-end'>Revenue</th>
                            <th class='text-end'>Growth</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td><strong>Professional License</strong></td>
                            <td><span class='badge bg-primary'>Software</span></td>
                            <td>1,234</td>
                            <td class='text-end'>$369,000</td>
                            <td class='text-end'><span class='badge bg-success'>+18%</span></td>
                        </tr>
                        <tr>
                            <td><strong>Plus License</strong></td>
                            <td><span class='badge bg-primary'>Software</span></td>
                            <td>2,891</td>
                            <td class='text-end'>$289,000</td>
                            <td class='text-end'><span class='badge bg-success'>+15%</span></td>
                        </tr>
                        <tr>
                            <td><strong>Support Package</strong></td>
                            <td><span class='badge bg-info'>Services</span></td>
                            <td>892</td>
                            <td class='text-end'>$178,000</td>
                            <td class='text-end'><span class='badge bg-success'>+22%</span></td>
                        </tr>
                        <tr>
                            <td><strong>Training Program</strong></td>
                            <td><span class='badge bg-info'>Services</span></td>
                            <td>456</td>
                            <td class='text-end'>$91,000</td>
                            <td class='text-end'><span class='badge bg-warning'>+5%</span></td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapDashboard);
pdf.SaveAs("sales-dashboard.pdf");

Résultat : Un tableau de bord Enterprise Professional avec des cartes de métriques flexbox de Bootstrap, une mise en page en grille réactive et des tableaux de données stylisés, le tout rendu avec une fidélité parfaite dans le PDF.

PDFTron (Apryse) : Module HTML2PDF avec Limitations Cadre

La conversion HTML en PDF de PDFTron est fournie via le module HTML2PDF, qui utilise un moteur de rendu personnalisé avec des limitations spécifiques pour les cadres CSS modernes :

  • Moteur personnalisé : non basé sur Chromium, ce qui signifie que la prise en charge de CSS3 est sélective et non exhaustive.
  • Prise en charge de Flexbox : implémentation partielle, les mises en page Flexbox de Bootstrap 4/5 peuvent ne pas s'afficher correctement.
  • CSS Grid : Prise en charge limitée des spécifications de mise en page CSS Grid
  • Limitations JavaScript : Exécution JavaScript limitée par rapport aux moteurs de navigateur complets
  • Bootstrap 3 : Fonctionne généralement mieux que Bootstrap 4/5 grâce à ses mises en page basées sur des tableaux.
  • Tests du framework requis : les composants Bootstrap complexes nécessitent des tests approfondis et d'éventuelles solutions de contournement.

Selon les rapports des développeurs, les utilisateurs de PDFTron travaillant avec Bootstrap rencontrent :

  • Barres de navigation basées sur flexbox avec des problèmes d'alignement
  • Decks de cartes et systèmes de grille nécessitant des ajustements CSS
  • Utilitaires réactifs non respectés dans le rendu PDF
  • Besoin de simplifier les composants Bootstrap ou d'utiliser des CSS de secours

Considération Enterprise : Pour les applications construites sur des versions modernes de Bootstrap (4+), PDFTron peut nécessiter un effort de développement supplémentaire important pour gérer les conversions de mise en page, ce qui peut potentiellement compenser ses autres avantages en termes de performances. L'approche du moteur personnalisé signifie que vous n'obtenez pas la même fidélité de rendu qu'un véritable navigateur.

Pour un support complet du cadre Bootstrap et des conseils de test, voir le Guide de CSS Bootstrap & Flexbox.

Quand devrais-je choisir chaque bibliothèque ?

Faire le bon choix dépend de vos exigences et contraintes spécifiques.

Choisissez IronPDF lorsque :

La Fidélité HTML/CSS est Critique

  • Applications Web modernes avec des mises en page complexes
  • Contenu riche en JavaScript
  • Conceptions réactives qui doivent être préservées

Le Développement Rapide est une Priorité

La Transparence Budgétaire Compte

  • Tarification publiée permettant une budgétisation précise
  • Aucun coût surprise ou frais cachés
  • Inclut toutes les fonctionnalités dans la licence de base

Vous Avez Besoin de Fonctionnalités Spécifiques

Choisissez PDFTron (Apryse) Lorsque :

Flux de Travail Documentaire d'Entreprise

  • Traitement de formulaires complexes avec support XFA
  • Conversions de fichiers CAO (DWG, DXF)
  • Gestion avancée des documents Office

Performance sur les Fonctionnalités

  • Traitement de documents simples à fort volume
  • Exigences en mémoire réduites
  • Besoins de conversion HTML basiques

Exigences Spécialisées

  • Composants de visionneuse de documents intégrés
  • Types d'annotations étendus (30+)
  • Intégration de systèmes hérités

Grand Environnement d'Entreprise

  • Contrats de support dédiés
  • Développement de fonctionnalités sur mesure
  • Certifications de conformité

Résumé et Conclusion

IronPDF et PDFTron (Apryse) sont deux bibliothèques PDF capables, mais elles servent différents segments de marché et cas d'utilisation.

IronPDF excelle dans :

  • Support des technologies Web modernes (HTML5, CSS3, JavaScript)
  • Conception d'API conviviale pour les développeurs
  • Tarification transparente et abordable
  • Développement rapide d'applications
  • Déploiements cloud et conteneurisés

Les points forts de PDFTron (Apryse) incluent :

  • Flux de travail documentaire d'entreprise
  • Support des formats spécialisés et CAO
  • Consommation de ressources réduite
  • Capacités d'annotation étendues
  • Compatibilité avec les systèmes hérités

Pour la plupart des développeurs .NET construisant des applications modernes, IronPDF offre une forte combinaison de fonctionnalités, de facilité d'utilisation et de tarification transparente. Son moteur de rendu basé sur Chrome assure une conversion HTML en PDF de haute fidélité, tandis que l'API simple accélère le développement.

PDFTron demeure viable pour les entreprises avec des besoins spécifiques en matière de conversion de CAO, de traitement de formulaires complexes, ou lorsqu'ils travaillent avec des formats de documents hérités. Cependant, le manque de transparence tarifaire et la structure de licences modulaires peuvent augmenter considérablement les coûts totaux.

Démarrer

Essayez IronPDF :

Explorez PDFTron :

N'oubliez pas d'évaluer minutieusement les deux options avec vos cas d'utilisation spécifiques avant de prendre une décision. Considérez des facteurs comme les coûts à long terme, la qualité du support et les feuilles de route des fonctionnalités à côté des capacités techniques.

Première étape :
arrow pointer
Veuillez noter: PDFTron est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, approuvé ou sponsorisé par PDFTron. 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.
Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $