Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

Jak przeprowadzić migrację z Sumatra PDF do IronPDF w języku C#

Migracja zSumatra PDFdo IronPDF przekształca przepływ pracy PDF z zarządzania procesami zewnętrznymi za pomocą aplikacji do przeglądania na komputerze stacjonarnym na natywną integrację biblioteki .NET z pełnymi możliwościami tworzenia, manipulacji i ekstrakcji PDF. Ten przewodnik oferuje pełną, szczegółową ścieżkę migracji eliminującą zewnętrzne zależności, AGPLv3 obowiązki copyleft i podstawowe ograniczenie, żeSumatra PDFjest przeglądarką/drukarką, a nie biblioteką deweloperską.

Dlaczego migrować zSumatra PDFdo IronPDF

Zrozumienie Sumatra PDF

Sumatra PDF to lekki, otwartoźródłowy czytnik/drukarka PDF na Windows, znany z prostoty i szybkości. Wyświetla również pliki EPUB, MOBI, CBZ/CBR, FB2, CHM, XPS i DjVu. JednakSumatra PDFnie zapewnia funkcji potrzebnych do tworzenia lub manipulowania plikami PDF poza ich przeglądaniem i drukowaniem, i nie ma oficjalnego SDK dla .NET ani pakietu NuGet — wspólnotowe nakładki po prostu wywołują SumatraPDF.exe.

Sumatra PDF to samodzielna aplikacja przeglądarko-drukarka na Windows, a nie biblioteka deweloperska. Jeśli używaszSumatra PDFw swojej aplikacji .NET, prawdopodobnie:

  1. Uruchamianie SumatraPDF.exe jako zewnętrznego procesu do wyświetlania PDF
  2. Drukowanie PDF za pomocą wiersza poleceń (-print-to-default, -print-to "<printer>")
  3. Polegasz na niej jako zależności, którą twoi użytkownicy muszą zainstalować

Kluczowe Problemy z Integracją Sumatra PDF

Problem Wpływ
Nie jest to biblioteka Nie można programowo tworzyć ani edytować plików PDF
Proces zewnętrzny Wymaga uruchomienia SumatraPDF.exe; brak API w procesie
Licencja AGPLv3 Silne copyleft (niektóre pliki licencjonowane na BSD); bundling into closed-source products imposes obligations most commercial vendors avoid
Zależność użytkownika Użytkownicy (lub twój instalator) muszą umieścić SumatraPDF.exe na dysku
Tylko CLI Ograniczone do udokumentowanych argumentów wiersza poleceń
Tylko Wyświetlanie / Drukowanie Nie można tworzyć, edytować ani modyfikować plików PDF
Tylko Windows Brak wersji dlaLinuxlub macOS

PorównanieSumatra PDFz IronPDF

Funkcja Sumatra PDF IronPDF
Typ Zastosowanie Biblioteka
Odczytywanie plików PDF Tak Tak
Tworzenie plików PDF Nie Tak
Edycja plików PDF Nie Tak
Integracja Ograniczone (samodzielne) Pełna integracja z aplikacjami
Licencja AGPLv3 (niektóre pliki BSD) Komercjalne
Tworzenie PDFów Nie Tak
Edytowanie PDFów Nie Tak
HTML do PDF Nie Tak
Scal/Podziel Nie Tak
Znaki wodne Nie Tak
Podpisy cyfrowe Nie Tak
Wypełnianie formularzy Nie Tak
Wyodrębnianie tekstu Nie Tak
Integracja z platformą .NET None Język ojczysty
Aplikacje internetowe Nie Tak

IronPDF, w odróżnieniu od Sumatra PDF, nie jest związany z żadną specyficzną aplikacją desktopową ani procesem zewnętrznym. Zapewnia deweloperom elastyczną bibliotekę do dynamicznego tworzenia, edytowania i manipulowania dokumentami PDF bezpośrednio w C#. To odłączenie od procesów zewnętrznych oferuje zauważalną przewagę — jest proste i elastyczne, nadające się do szerokiej gamy aplikacji, nie tylko do przeglądania.

Dla zespołów pracujących nad nowoczesnym .NET,IronPDF dostarcza natywną integrację biblioteki, która eliminuje nadmiar procesów zewnętrznych i obowiązki copyleft AGPLv3 Sumatra PDF.


Zanim zaczniesz

Wymagania wstępne

  1. Środowisko .NET: .NET Framework 4.6.2+ lub .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Dostęp do NuGet: Możliwość instalowania pakietów NuGet
  3. Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com

Instalacja

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

Konfiguracja licencji

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

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

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

Podstawowe Mapowanie Zdolności

Podejście Sumatra PDF Odpowiednik IronPDF Uwagi
Process.Start("SumatraPDF.exe", pdfPath) PdfDocument.FromFile() Pobierz plik PDF
Argumenty wiersza poleceń Metody natywnego API Nie potrzebuje CLI
Zewnętrzny pdftotext.exe pdf.ExtractAllText() Wyodrębnianie tekstu
Zewnętrzny wkhtmltopdf.exe renderer.RenderHtmlAsPdf() HTML do PDF
-print-to-default argument pdf.Print() Drukowanie
Niemożliwe PdfDocument.Merge() Łączenie plików PDF
Niemożliwe pdf.ApplyWatermark() Znaki wodne
Niemożliwe pdf.SecuritySettings Ochrona hasłem

Przykłady migracji kodu

Przykład 1: Konwersja HTML do PDF

Before (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsapp (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 standaloneWindowsapp (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

Po (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 do PDF conversion.</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 do PDF conversion.</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 do PDF conversion.</p>"

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

        Console.WriteLine("PDF created successfully!")
    End Sub
End Class
$vbLabelText   $csharpLabel

Ten przykład ilustruje podstawową różnicę architektoniczną.Sumatra PDFnie może bezpośrednio konwertować HTML na PDF — musisz użyć zewnętrznego narzędzia takiego jak wkhtmltopdf jako pośrednika, a następnie uruchomić Sumatra jako oddzielny proces, aby wyświetlić wynik. To wymaga dwóch zewnętrznych wykonywalnych i wielu uruchomień procesów.

IronPDF używa ChromePdfRenderer z RenderHtmlAsPdf() w zaledwie trzech linijkach kodu. Bez zewnętrznych narzędzi, bez zarządzania procesem, bez plików pośrednich. PDF jest tworzony bezpośrednio w pamięci i zapisywany za pomocą SaveAs(). Kompleksowe przykłady można znaleźć w dokumentacji dotyczącej konwersji HTML do PDF.

Przykład 2: Otwieranie i wyświetlanie PDFów

Before (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsapp (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 standaloneWindowsapp (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

Po (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 sprawdza się w wyświetlaniu PDFów, ale jest ograniczona do uruchamiania zewnętrznego procesu z oryginalnymi argumentami wiersza poleceń. Nie możesz programowo uzyskać dostępu do treści PDF — tylko ją wyświetlić.

IronPDF ładuje PDF za pomocą PdfDocument.FromFile(), dając pełny dostęp programistyczny. Możesz odczytać właściwości takie jak PageCount, manipulować dokumentem, zapisać zmiany, a następnie otworzyć go w domyślnym przeglądarce PDF systemu. Kluczową różnicą jest to, że IronPDF zapewnia rzeczywiste API, nie tylko argumenty procesów. Dowiedz się więcej z naszych samouczków.

Przykład 3: Wyodrębnianie tekstu z PDFów

Before (Sumatra PDF):

//Sumatra PDFis a standaloneWindowsviewer (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 standaloneWindowsviewer (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 PDF is 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

Po (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 jest przeglądarką, nie biblioteką wyodrębniającą tekst. Aby wyodrębnić tekst, należy użyć zewnętrznych narzędzi wiersza poleceń jak pdftotext.exe, uruchomić proces, poczekać na jego zakończenie, odczytać plik wyjściowy i obsłużyć całą związaną z tym operację I/O plików i czyszczenie.

IronPDF zapewnia natywne wyodrębnianie tekstu za pomocą ExtractAllText() dla całego dokumentu lub ExtractTextFromPage(0) dla konkretnych stron. Brak procesów zewnętrznych, brak plików tymczasowych, brak wymaganego oczyszczania.


Porównanie funkcji

Funkcja Sumatra PDF IronPDF
:Tworzenie: HTML do PDF Nie Tak
URL do pliku PDF Nie Tak
Tekst do PDF Nie Tak
Obraz do PDF Nie Tak
:Manipulation: Łączenie plików PDF Nie Tak
Podział plików PDF Nie Tak
Przewracaj strony Nie Tak
Usuń strony Nie Tak
Zmień kolejność stron Nie Tak
:Zawartość: Dodaj znaki wodne Nie Tak
Dodaj nagłówki/stopki Nie Tak
Tekst stempla Nie Tak
Obrazy stempli Nie Tak
:Bezpieczeństwo: Ochrona hasłem Nie Tak
Podpisy cyfrowe Nie Tak
Szyfrowanie Nie Tak
Ustawienia uprawnień Nie Tak
:Wyodrębnianie: Wyodrębnij tekst Nie Tak
Wyodrębnij obrazy Nie Tak
:Platform: Windows Tak Tak
Linux Nie Tak
macOS Nie Tak
Aplikacje internetowe Nie Tak
Azure/AWS Nie Tak

Nowe możliwości po migracji

Po migracji do IronPDF, zyskujesz możliwości, którychSumatra PDFnie może zapewnić:

Tworzenie PDFów z 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

Łączenie plików 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

Znaki wodne

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

Ochrona hasłem

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

Lista kontrolna migracji

Przed migracją

  • Identyfikuj wszystkie uruchomienia procesu Sumatra (Process.Start("SumatraPDF.exe", ...))
  • Dokumentuj procesy drukowania (-print-to-default argumenty)
  • Zapisz używane argumenty wiersza poleceń Sumatra
  • Uzyskaj klucz licencyjny IronPDF ze strony ironpdf.com

Aktualizacje kodu

  • Zainstaluj IronPdf pakiet NuGet
  • Usuń kod procesu Sumatra
  • Zamień Process.Start("SumatraPDF.exe", pdfPath) na PdfDocument.FromFile(pdfPath)
  • Zamień zewnętrzne wywołania wkhtmltopdf.exe na ChromePdfRenderer.RenderHtmlAsPdf()
  • Zamień zewnętrzne wywołania pdftotext.exe na pdf.ExtractAllText()
  • Zamień wywołania procesu -print-to-default na pdf.Print()
  • Dodaj inicjalizację licencji podczas uruchamiania aplikacji

Testowanie

  • Przetestuj jakość generacji PDF
  • Zweryfikuj funkcjonalność druku
  • Przetestuj na wszystkich platformach docelowych
  • Zweryfikuj brak zależności Sumatra

Oczyszczanie

  • Usuń Sumatra z instalatorów
  • Aktualizacja dokumentacji
  • Usuń Sumatra z wymagań systemowych

Zwróć uwagęSumatra PDF i wkhtmltopdf są zarejestrowanymi znakami towarowymi ich właścicieli. Ta strona nie jest powiązana, popierana ani sponsorowana przez projektSumatra PDFani projekt wkhtmltopdf. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie