IRONSOFTWAREHOME
FILMY

Jak wyeksportować plik PDF w języku C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

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

ProblemWpływ
Nie jest to bibliotekaNie można programowo tworzyć ani edytować plików PDF
Proces zewnętrznyWymaga uruchomienia SumatraPDF.exe; brak API w procesie
Licencja AGPLv3Silne copyleft (niektóre pliki licencjonowane na BSD); bundling into closed-source products imposes obligations most commercial vendors avoid
Zależność użytkownikaUżytkownicy (lub twój instalator) muszą umieścić SumatraPDF.exe na dysku
Tylko CLIOgraniczone do udokumentowanych argumentów wiersza poleceń
Tylko Wyświetlanie / DrukowanieNie można tworzyć, edytować ani modyfikować plików PDF
Tylko WindowsBrak wersji dlaLinuxlub macOS

PorównanieSumatra PDFz IronPDF

FunkcjaSumatra PDFIronPDF
TypZastosowanieBiblioteka
Odczytywanie plików PDFTakTak
Tworzenie plików PDFNieTak
Edycja plików PDFNieTak
IntegracjaOgraniczone (samodzielne)Pełna integracja z aplikacjami
LicencjaAGPLv3 (niektóre pliki BSD)Komercjalne
Tworzenie PDFówNieTak
Edytowanie PDFówNieTak
HTML do PDFNieTak
Scal/PodzielNieTak
Znaki wodneNieTak
Podpisy cyfroweNieTak
Wypełnianie formularzyNieTak
Wyodrębnianie tekstuNieTak
Integracja z platformą .NETNoneJęzyk ojczysty
Aplikacje internetoweNieTak

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
SHELL

Konfiguracja licencji

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

Kompletna dokumentacija API

Zmiany w przestrzeni nazw

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

// After: IronPDF
using IronPdf;

Podstawowe Mapowanie Zdolności

Podejście Sumatra PDFOdpowiednik IronPDFUwagi
Process.Start("SumatraPDF.exe", pdfPath)PdfDocument.FromFile()Pobierz plik PDF
Argumenty wiersza poleceńMetody natywnego APINie potrzebuje CLI
Zewnętrzny pdftotext.exepdf.ExtractAllText()Wyodrębnianie tekstu
Zewnętrzny wkhtmltopdf.exerenderer.RenderHtmlAsPdf()HTML do PDF
-print-to-default argumentpdf.Print()Drukowanie
NiemożliwePdfDocument.Merge()Łączenie plików PDF
Niemożliwepdf.ApplyWatermark()Znaki wodne
Niemożliwepdf.SecuritySettingsOchrona 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);
    }
}
C#

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

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}\""
    }
}
C#

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 });
    }
}
C#

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);
    }
}
C#

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

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

FunkcjaSumatra PDFIronPDF
:Tworzenie:
URL do pliku PDFNieTak
Tekst do PDFNieTak
Obraz do PDFNieTak
:Manipulation:
Podział plików PDFNieTak
Przewracaj stronyNieTak
Usuń stronyNieTak
Zmień kolejność stronNieTak
:Zawartość:
Dodaj nagłówki/stopkiNieTak
Tekst stemplaNieTak
Obrazy stempliNieTak
:Bezpieczeństwo:
Podpisy cyfroweNieTak
SzyfrowanieNieTak
Ustawienia uprawnieńNieTak
:Wyodrębnianie:
Wyodrębnij obrazyNieTak
:Platform:
LinuxNieTak
macOSNieTak
Aplikacje internetoweNieTak
Azure/AWSNieTak

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

Łą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");

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

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

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ęczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta