Passer au contenu du pied de page
VIDéOS

Comment exporter un PDF en C# | IronPDF

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ématique Impact
Pas une bibliothèque Impossible de créer ou d'éditer des PDF de manière programmatique
Processus externe Nécessite de lancer SumatraPDF.exe ; aucune API en cours de processus
Licence AGPLv3 Copyleft fort (certains fichiers sous licence BSD) ; bundling into closed-source products imposes obligations most commercial vendors avoid
Dépendance de l'utilisateur Les utilisateurs (ou votre installateur) doivent placer SumatraPDF.exe sur le disque
CLI seulement Limité aux arguments de ligne de commande documentés
Visualisation / Impression seulement Impossibilité de créer, d'éditer ou de manipuler des PDF
Windows seulement Pas de versions Linuxou macOS

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 AGPLv3 (certains fichiers sous BSD) 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 None 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 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
# 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";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$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;
Imports System.Diagnostics
Imports System.IO

Imports IronPdf
$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 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):

// 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);
    }
}
// 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);
    }
}
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        ' Sumatra PDF cannot directly convert HTML to PDF
        ' You'd need to use wkhtmltopdf or similar, then view in Sumatra
        Dim htmlFile As String = "input.html"
        Dim pdfFile As String = "output.pdf"

        ' Using wkhtmltopdf as intermediary
        Dim psi As New ProcessStartInfo With {
            .FileName = "wkhtmltopdf.exe",
            .Arguments = $"{htmlFile} {pdfFile}",
            .UseShellExecute = False
        }
        Process.Start(psi)?.WaitForExit()

        ' Then open with Sumatra
        Process.Start("SumatraPDF.exe", pdfFile)
    End Sub
End Module
$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!");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim htmlContent As String = "<h1>Hello World</h1><p>This is HTML vers PDFconversion.</p>"

        Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully!")
    End Sub
End Class
$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):

// 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}\""
    }
}
// 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}\""
    }
}
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        Dim pdfPath As String = "document.pdf"

        ' Sumatra PDF excels at viewing PDFs
        Dim startInfo As New ProcessStartInfo With {
            .FileName = "SumatraPDF.exe",
            .Arguments = $"""{pdfPath}""",
            .UseShellExecute = True
        }

        Process.Start(startInfo)

        ' Optional: Open specific page
        ' startInfo.Arguments = $"-page 5 ""{pdfPath}"""
    End Sub
End Module
$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}");

        //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 });
    }
}
// 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 });
    }
}
Imports IronPdf
Imports System
Imports System.Diagnostics

Module Program
    Sub Main()
        Dim 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") With {.UseShellExecute = True})
    End Sub
End Module
$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(), 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);
    }
}
// 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);
    }
}
Imports System
Imports System.Diagnostics
Imports System.IO

Module Program
    Sub Main()
        ' Sumatra PDFis a viewer, not a text extraction library
        ' You'd need to use PDFBox, iTextSharp, or similar for extraction

        Dim pdfFile As String = "document.pdf"

        ' This would require external tools like pdftotext
        Dim psi As New ProcessStartInfo With {
            .FileName = "pdftotext.exe",
            .Arguments = $"{pdfFile} output.txt",
            .UseShellExecute = False
        }

        Process.Start(psi)?.WaitForExit()

        Dim extractedText As String = File.ReadAllText("output.txt")
        Console.WriteLine(extractedText)
    End Sub
End Module
$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}");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")

        ' Extract text from all pages
        Dim allText As String = pdf.ExtractAllText()
        Console.WriteLine("Extracted Text:")
        Console.WriteLine(allText)

        ' Extract text from specific page
        Dim pageText As String = pdf.ExtractTextFromPage(0)
        Console.WriteLine(vbCrLf & "First Page Text:" & vbCrLf & pageText)
    End Sub
End Class
$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 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

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
: Plate-forme : 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");
Dim renderer = New ChromePdfRenderer()
Dim 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")
$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");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim pdf3 = PdfDocument.FromFile("chapter3.pdf")

Dim book = PdfDocument.Merge(pdf1, pdf2, pdf3)
book.SaveAs("complete_book.pdf")
$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");
Dim 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")
$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");
Dim renderer As New ChromePdfRenderer()
Dim 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")
$vbLabelText   $csharpLabel

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

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi