IRONSOFTWAREHOME
VIDÉOS

Comment exporter un PDF en C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 juillet 2026

La migration de Sumatra PDFvers IronPDF transforme votre flux de travail PDF d'une gestion de processus externe avec une application de visualisation de bureau à une intégration de bibliothèque .NET native avec des capacités complètes de création, de manipulation et d'extraction de PDF. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les dépendances externes, les obligations de copyleft AGPLv3, et la limitation fondamentale que Sumatra PDFest un visualiseur/imprimante, et non une bibliothèque de développement.

Pourquoi migrer de Sumatra PDFvers IronPDF

Compréhension de Sumatra PDF

Sumatra PDF est un léger lecteur/imprimante PDF pour Fenêtresopen-source renommé pour sa simplicité et rapidité. Il affiche également des fichiers EPUB, MOBI, CBZ/CBR, FB2, CHM, XPS et DjVu. Cependant, Sumatra PDFne fournit pas les capacités nécessaires pour créer ou manipuler des fichiers PDF au-delà de leur visualisation et de leur impression, et il n'existe pas de SDK .NET officiel ou de package NuGet — les wrappers de la communauté se contentent de faire appel à SumatraPDF.exe.

Sumatra PDF est une application autonome de visualisateur/imprimante de bureau Windows, pas une bibliothèque de développement. Si vous utilisez Sumatra PDFdans votre application .NET, vous êtes probablement.. :

  1. Lancer SumatraPDF.exe comme processus externe pour afficher des PDFs
  2. Imprimer des PDFs via la ligne de commande (-print-to-default, -print-to "<printer>")
  3. Il s'agit d'une dépendance que vos utilisateurs doivent installer

Principaux problèmes liés à l'intégration de Sumatra PDF

ProblématiqueImpact
Pas une bibliothèqueImpossible de créer ou d'éditer des PDF de manière programmatique
Processus externeNécessite de lancer SumatraPDF.exe ; aucune API en cours de processus
Licence AGPLv3Copyleft fort (certains fichiers sous licence BSD) ; bundling into closed-source products imposes obligations most commercial vendors avoid
Dépendance de l'utilisateurLes utilisateurs (ou votre installateur) doivent placer SumatraPDF.exe sur le disque
CLI seulementLimité aux arguments de ligne de commande documentés
Visualisation / Impression seulementImpossibilité de créer, d'éditer ou de manipuler des PDF
Windows seulementPas de versions Linuxou macOS

Comparaison Sumatra PDFvs IronPDF

FonctionSumatra PDFIronPDF
TypeApplicationBibliothèque
Lecture de PDFOuiOui
Création de PDFNonOui
Édition de PDFNonOui
IntégrationLimité (autonome)Intégration complète dans les applications
LicenceAGPLv3 (certains fichiers sous BSD)Commercial
Créer des PDFNonOui
Éditer des PDFNonOui
HTML à PDFNonOui
Fusion/FractionnementNonOui
Marqueurs d'eauNonOui
Signatures numériquesNonOui
Remplissage de formulairesNonOui
Extraction de texteNonOui
Intégration .NETNoneNatif
Applications webNonOui

IronPDF, contrairement à Sumatra PDF, n'est pas lié à une application de bureau spécifique ou à un processus externe. Il fournit aux développeurs une bibliothèque flexible pour créer, éditer et manipuler dynamiquement des documents PDF directement en C#. Ce découplage des processus externes présente un avantage notable : il est simple et adaptable, et convient à un large éventail d'applications au-delà de la simple visualisation.

Pour les équipes ciblant le .NET moderne,IronPDF fournit une intégration de bibliothèque native qui élimine la surcharge de processus externe et les obligations de copyleft AGPLv3 de Sumatra PDF.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès à NuGet : possibilité d'installer des packages NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur IronPDF

Installation

# Install IronPDF
dotnet add package IronPdf
SHELL

Configuration de la licence

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Référence API complète

Modifications de l'espace de nommage

// Before: Sumatra PDF(external process)
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;

Mappages des capacités de base

Sumatra PDFApprocheÉquivalent d'IronPDFNotes
Process.Start("SumatraPDF.exe", pdfPath)PdfDocument.FromFile()Charger le PDF
Arguments de la ligne de commandeMéthodes API nativesPas de CLI nécessaire
Externe pdftotext.exepdf.ExtractAllText()Extraction de texte
Externe wkhtmltopdf.exerenderer.RenderHtmlAsPdf()HTML vers PDF
Argument -print-to-defaultpdf.Print()Impression
Pas possiblePdfDocument.Merge()Fusionner des PDF
Pas possiblepdf.ApplyWatermark()Filigranes
Pas possiblepdf.SecuritySettingsProtection par mot de passe

Exemples de migration de code

Exemple 1 : Conversion HTML vers PDF

Avant (Sumatra PDF):

// Sumatra PDFis a standalone Fenêtresapp (AGPLv3) — there is NO official NuGet package.
// Download SumatraPDF.exe from https://www.sumatrapdfreader.org/and shell out to it.
// Sumatra is a viewer/printer only; it cannot convert HTML to PDF, so you must use a
// separate HTML-to-PDF tool (e.g. wkhtmltopdf) and then view/print with Sumatra.
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        // Sumatra PDFcannot directly convert HTML to PDF
        // You'd need to use wkhtmltopdf or similar, then view in Sumatra
        string htmlFile = "input.html";
        string pdfFile = "output.pdf";
        
        // Using wkhtmltopdf as intermediary
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "wkhtmltopdf.exe",
            Arguments = $"{htmlFile} {pdfFile}",
            UseShellExecute = false
        };
        Process.Start(psi)?.WaitForExit();
        
        // Then open with Sumatra
        Process.Start("SumatraPDF.exe", pdfFile);
    }
}
C#

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        string htmlContent = "<h1>Hello World</h1><p>This is HTML vers PDFconversion.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}
C#

Cet exemple illustre la différence architecturale fondamentale. Sumatra PDFne peut pas convertir directement HTML en PDF. Vous devez utiliser un outil externe comme wkhtmltopdf en tant qu'intermédiaire, puis lancer Sumatra en tant que processus séparé pour voir le résultat. Cela nécessite deux exécutables externes et plusieurs lancements de processus.

IronPDF utilise un ChromePdfRenderer avec RenderHtmlAsPdf() en seulement trois lignes de code. Pas d'outils externes, pas de gestion de processus, pas de fichiers intermédiaires. Le PDF est créé directement en mémoire et enregistré avec SaveAs(). Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : Ouverture et affichage de fichiers PDF

Avant (Sumatra PDF):

// Sumatra PDFis a standalone Fenêtresapp (AGPLv3) — no official NuGet package.
// Download SumatraPDF.exe from https://www.sumatrapdfreader.org/and call it via Process.Start.
// Useful CLI flags: -page <n>, -print-to-default, -print-to "<printer>", -print-settings, -silent.
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        string pdfPath = "document.pdf";
        
        // Sumatra PDFexcels at viewing PDFs
        ProcessStartInfo startInfo = new ProcessStartInfo
        {
            FileName = "SumatraPDF.exe",
            Arguments = $"\"{pdfPath}\"",
            UseShellExecute = true
        };
        
        Process.Start(startInfo);
        
        // Optional: Open specific page
        // Arguments = $"-page 5 \"{pdfPath}\""
    }
}
C#

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Diagnostics;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        
        // Extract information
        Console.WriteLine($"Page Count: {pdf.PageCount}");
        
        //IronPDF can manipulate and save, then open with default viewer
        pdf.SaveAs("modified.pdf");
        
        // Open with default PDF viewer
        Process.Start(new ProcessStartInfo("modified.pdf") { UseShellExecute = true });
    }
}
C#

Sumatra PDF excelle dans la visualisation des PDF, mais il est limité au lancement d'un processus externe avec des arguments de ligne de commande. Vous ne pouvez pas accéder par programme au contenu du PDF, mais seulement l'afficher.

IronPDF charge le PDF avec PdfDocument.FromFile(), vous donnant un accès programmatique complet. Vous pouvez lire des propriétés comme PageCount, manipuler le document, enregistrer les modifications, puis ouvrir avec le visualiseur PDF par défaut du système. La principale différence réside dans le fait qu'IronPDF fournit une véritable API, et pas seulement des arguments de processus. Pour en savoir plus, consultez nos tutoriels.

Exemple 3 : Extraction de texte à partir de PDF

Avant (Sumatra PDF):

// Sumatra PDFis a standalone Fenêtresviewer (AGPLv3) — no official NuGet package
// and no programmatic text-extraction API. To extract text you must shell out to a
// separate tool such as pdftotext (Xpdf / Poppler).
using System;
using System.Diagnostics;
using System.IO;

class Program
{
    static void Main()
    {
        // Sumatra PDFis a viewer, not a text extraction library
        // You'd need to use PDFBox, iTextSharp, or similar for extraction
        
        string pdfFile = "document.pdf";
        
        // This would require external tools like pdftotext
        ProcessStartInfo psi = new ProcessStartInfo
        {
            FileName = "pdftotext.exe",
            Arguments = $"{pdfFile} output.txt",
            UseShellExecute = false
        };
        
        Process.Start(psi)?.WaitForExit();
        
        string extractedText = File.ReadAllText("output.txt");
        Console.WriteLine(extractedText);
    }
}
C#

Après (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        
        // Extract text from all pages
        string allText = pdf.ExtractAllText();
        Console.WriteLine("Extracted Text:");
        Console.WriteLine(allText);
        
        // Extract text from specific page
        string pageText = pdf.ExtractTextFromPage(0);
        Console.WriteLine($"\nFirst Page Text:\n{pageText}");
    }
}

Sumatra PDF est une visionneuse et non une bibliothèque d'extraction de texte. Pour extraire du texte, vous devez utiliser des outils en ligne de commande externes comme pdftotext.exe, lancer un processus, attendre qu'il se termine, lire le fichier de sortie, et gérer tous les E/S de fichiers et le nettoyage associés.

IronPDF fournit une extraction de texte native avec ExtractAllText() pour l'ensemble du document ou ExtractTextFromPage(0) pour des pages spécifiques. Aucun processus externe, aucun fichier temporaire, aucun nettoyage n'est nécessaire.


Comparaison des fonctionnalités

FonctionSumatra PDFIronPDF
: Création :
URL vers PDFNonOui
Texte au format PDFNonOui
De l'image au PDFNonOui
: Manipulation :
Diviser les PDFNonOui
Rotation des pagesNonOui
Supprimer des pagesNonOui
Réorganiser les pagesNonOui
: Contenu :
Ajouter des en-têtes/pieds de pageNonOui
Texte du timbreNonOui
Images du timbreNonOui
: Sécurité :
Signatures numériquesNonOui
ChiffrementNonOui
Paramètres de permissionNonOui
Extraction :
Extraire des imagesNonOui
: Plate-forme :
LinuxNonOui
macOSNonOui
Applications WebNonOui
Azure/AWSNonOui

Nouvelles capacités après la migration

Après avoir migré vers IronPDF, vous bénéficiez de fonctionnalités que Sumatra PDFne peut pas vous offrir :

Création de PDF à partir de HTML

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(@"
    <html>
    <head><style>body { font-family: Arial; }</style></head>
    <body>
        <h1>Invoice #12345</h1>
        <p>Thank you for your purchase.</p>
    </body>
    </html>");

pdf.SaveAs("invoice.pdf");

Fusion de fichiers PDF

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var pdf3 = PdfDocument.FromFile("chapter3.pdf");

var book = PdfDocument.Merge(pdf1, pdf2, pdf3);
book.SaveAs("complete_book.pdf");

Marques de fond

var pdf = PdfDocument.FromFile("document.pdf");

pdf.ApplyWatermark(@"
    <div style='
        font-size: 60pt;
        color: rgba(255, 0, 0, 0.3);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");

pdf.SaveAs("watermarked.pdf");

Protection par mot de passe

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Sensitive Data</h1>");

pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;

pdf.SaveAs("protected.pdf");

Liste de contrôle de la migration

Pré-migration

  • Identifier tous les lancements de processus Sumatra (Process.Start("SumatraPDF.exe", ...))
  • Documenter les flux de travail d'impression (-print-to-default arguments)
  • Notez les arguments de ligne de commande Sumatra utilisés.
  • Obtenez votre clé de licence IronPDF sur IronPDF

Mises à jour du code

  • Installer le package NuGet IronPdf
  • Supprimer le code de traitement Sumatra
  • Remplacer Process.Start("SumatraPDF.exe", pdfPath) par PdfDocument.FromFile(pdfPath)
  • Remplacer les appels externes wkhtmltopdf.exe par ChromePdfRenderer.RenderHtmlAsPdf()
  • Remplacer les appels externes pdftotext.exe par pdf.ExtractAllText()
  • Remplacer les appels de processus -print-to-default par pdf.Print()
  • Ajouter l'initialisation de la licence au démarrage de l'application

Essai

  • Tester la qualité de génération des PDF
  • Vérifier la fonctionnalité d'impression
  • Test sur toutes les plateformes cibles
  • Vérifiez qu'il ne reste aucune dépendance à Sumatra

Nettoyage

  • Supprimer Sumatra des programmes d'installation
  • Mise à jour de la documentation
  • Supprimer Sumatra des exigences système

Veuillez noter: Sumatra PDF et wkhtmltopdf sont des marques déposées de leurs propriétaires respectifs. Ce site n'est pas affilié, approuvé ou sponsorisé par le projet Sumatra PDFou le projet wkhtmltopdf. 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.
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 et créer des manuels bien structurés et visuellement attrayants.

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

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