Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de Sumatra PDF à IronPDF en C#

Migrer de Sumatra PDFàIronPDF: Guide de migration complet en C

La migration de Sumatra PDFversIronPDFtransforme 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 restrictions de la licence GPLet la limitation fondamentale que Sumatra PDFest une visionneuse et non une bibliothèque de développement.

Pourquoi migrer de Sumatra PDFvers IronPDF

Compréhension de Sumatra PDF

Sumatra PDF est avant tout un lecteur de PDF léger et open-source, réputé pour sa simplicité et sa rapidité. Cependant, Sumatra PDFne permet pas de créer ou de manipuler des fichiers PDF au-delà de leur visualisation. En tant qu'option gratuite et polyvalente pour la lecture des PDF, il est adoré par de nombreux utilisateurs à la recherche d'une expérience sans fioritures. Mais lorsqu'il s'agit de développeurs ayant besoin de fonctionnalités PDF plus complètes, telles que la création et l'intégration de bibliothèques dans des applications, Sumatra PDFn'est pas à la hauteur en raison de ses limites de conception inhérentes.

Sumatra PDF est une application de visualisation PDF de bureau, et non une bibliothèque de développement. Si vous utilisez Sumatra PDFdans votre application .NET, vous êtes probablement.. :

  1. Le lancer en tant que processus externe pour afficher des PDF
  2. L'utiliser pour imprimer des PDF via la ligne de commande
  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ématique Impact
Pas une bibliothèque Impossible de créer ou d'éditer des PDF de manière programmatique
Processus externe Nécessite la création de processus distincts
<Licence GPL Restriction pour les logiciels commerciaux
Dépendance de l'utilisateur Les utilisateurs doivent installer Sumatra séparément
Pas d'API Limité aux arguments de ligne de commande
Voir uniquement Impossibilité de créer, d'éditer ou de manipuler des PDF
Pas de support web Applicationde bureau uniquement

Comparaison Sumatra PDFvs IronPDF

Fonction Sumatra PDF IronPDF
Type Application Bibliothèque
Lecture de PDF Oui Oui
Création de PDF Non Oui
Édition de PDF Non Oui
Intégration Limité (autonome) Intégration complète dans les applications
Licence GPL Commercial
Créer des PDF Non Oui
Éditer des PDF Non Oui
HTML à PDF Non Oui
Fusion/Fractionnement Non Oui
Marqueurs d'eau Non Oui
Signatures numériques Non Oui
Remplissage de formulaires Non Oui
Extraction de texte Non Oui
Intégration .NET Aucun Natif
Applications web Non Oui

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 qui prévoient d'adopter .NET 10 et C# 14 d'ici 2025 et 2026,IronPDFoffre une intégration de bibliothèque native qui élimine la surcharge de processus externe et les restrictions de licence GPLde 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 : Capacité à installer des paquets NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur ironpdf.com

Installation

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Configuration de la licence

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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;
// Before: Sumatra PDF(external process)
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappages des capacités de base

Sumatra PDFApproche Équivalent d'IronPDF Notes
Process.Start("SumatraPDF.exe", pdfPath) PdfDocument.FromFile() Charger le PDF
Arguments de la ligne de commande Méthodes API natives Pas de CLI nécessaire
Externe pdftotext.exe pdf.ExtractAllText() Extraction de texte
Externe wkhtmltopdf.exe renderer.RenderHtmlAsPdf() HTML vers PDF
argument print-to-default (en français dans le texte) pdf.Print() Impression
Pas possible PdfDocument.Merge() Fusionner des PDF
Pas possible pdf.ApplyWatermark() Filigranes
Pas possible pdf.SecuritySettings Protection par mot de passe

Exemples de migration de code

Exemple 1 : Conversion HTML vers PDF

Avant (Sumatra PDF):

// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
// Sumatra PDFdoesn't have direct C# integration for HTML vers PDFconversion
// You would need to use external tools or libraries and then open 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);
    }
}
// NuGet: Install-Package SumatraPDF (Note: Sumatra is primarily a viewer, not a generator)
// Sumatra PDFdoesn't have direct C# integration for HTML vers PDFconversion
// You would need to use external tools or libraries and then open 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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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!");
    }
}
// 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!");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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):

// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
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}\""
    }
}
// NuGet: Install-Package SumatraPDF.CommandLine (or direct executable)
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}\""
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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}");

        //IronPDFcan 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 });
    }
}
// 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}");

        //IronPDFcan 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 });
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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(), ce qui vous donne un accès programmatique complet. Vous pouvez lire des propriétés telles que PageCount, manipuler le document, enregistrer les modifications, puis l'ouvrir avec la visionneuse 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 PDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
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);
    }
}
// Sumatra PDFdoesn't provide C# API for text extraction
// You would need to use command-line tools or other libraries
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);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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}");
    }
}
// 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}");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sumatra PDF est une visionneuse et non une bibliothèque d'extraction de texte. Pour extraire du texte, vous devez utiliser des outils de ligne de commande externes tels que pdftotext.exe, lancer un processus, attendre qu'il se termine, lire le fichier de sortie et gérer toutes les entrées/sorties et tous les nettoyages de fichiers 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

Fonction Sumatra PDF IronPDF
Création
HTML vers PDF Non Oui
URL vers PDF Non Oui
Texte au format PDF Non Oui
De l'image au PDF Non Oui
Manipulation
Fusionner des PDF Non Oui
Diviser les PDF Non Oui
Rotation des pages Non Oui
Supprimer des pages Non Oui
Réorganiser les pages Non Oui
Contenu
Ajouter des filigranes Non Oui
Ajouter des en-têtes/pieds de page Non Oui
Texte du timbre Non Oui
Images du timbre Non Oui
Sécurité
Protection par mot de passe Non Oui
Signatures numériques Non Oui
Chiffrement Non Oui
Paramètres de permission Non Oui
Extraction
Extraire le texte Non Oui
Extraire des images Non Oui
Plateforme
Fenêtres Oui Oui
Linux Non Oui
macOS Non Oui
Applications Web Non Oui
Azure/AWS Non Oui

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");
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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");
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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • [Identifier tous les lancements de processus Sumatra (Process.Start("SumatraPDF.exe", ...))
  • [Flux d'impression de documents (arguments -print-to-default)
  • [Notez tous les arguments de ligne de commande Sumatra utilisés
  • [ ] Obtenir la clé de licenceIronPDFà partir de ironpdf.com

Mises à jour du code

  • [Installer le paquet IronPdf NuGet
  • [ ] Supprimer le code de processus 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

Testing

  • [Tester la qualité de la génération de PDF
  • [Vérifier la fonctionnalité de l'impression
  • [Test sur toutes les plateformes cibles
  • [Vérifier qu'aucune dépendance Sumatra ne subsiste

Nettoyage

  • [Supprimer Sumatra des programmes d'installation
  • [Mise à jour de la documentation
  • [Supprimer Sumatra de la configuration requise

Conclusion

En résumé, le choix entre Sumatra PDFetIronPDFdépend en grande partie de vos besoins. Pour les utilisateurs finaux qui ont besoin d'un lecteur de PDF rapide et simple, Sumatra PDFoffre une excellente expérience. Cependant, pour les développeurs et les entreprises qui ont besoin de capacités avancées de manipulation et d'intégration de PDF,IronPDFs'impose comme un choix supérieur. Sa conception en bibliothèque, ses fonctionnalités PDF complètes et sa licence commerciale en font un outil puissant pour élever les applications C# vers de nouveaux sommets.

Les principaux changements apportés à cette migration sont les suivants :

  1. Architecture : Applicationde bureau externe → Bibliothèque native .NET
  2. Création de PDF : Impossible → ChromePdfRenderer.RenderHtmlAsPdf()
  3. Chargement du PDF : Process.Start("SumatraPDF.exe", path)PdfDocument.FromFile(path)
  4. Extraction de texte : pdftotext.exe externe → pdf.ExtractAllText()et pdf.ExtractTextFromPage()
  5. Imprimer : argument print-to-default (en français dans le texte)CLI → pdf.Print()
  6. Fusion : Impossible → PdfDocument.Merge()
  7. Marqueurs d'eau: Impossible → pdf.ApplyWatermark()
  8. Sécurité : Impossible → pdf.SecuritySettings
  9. Licence : GPL(restrictive) → Commerciale (flexible)
  10. Dépendances : Les utilisateurs doivent installer Sumatra →Bibliothèquebundled with app

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers IronPDF.

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