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:
- Uruchamianie
SumatraPDF.exejako zewnętrznego procesu do wyświetlania PDF - Drukowanie PDF za pomocą wiersza poleceń (
-print-to-default,-print-to "<printer>") - 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
- Środowisko .NET: .NET Framework 4.6.2+ lub .NET Core 3.1+ / .NET 5/6/7/8/9+
- Dostęp do NuGet: Możliwość instalowania pakietów NuGet
- Licencja IronPDF: Uzyskaj klucz licencyjny na stronie ironpdf.com
Instalacja
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
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"
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
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
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
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
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
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
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
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")
Łą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")
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")
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")
Lista kontrolna migracji
Przed migracją
- Identyfikuj wszystkie uruchomienia procesu Sumatra (
Process.Start("SumatraPDF.exe", ...)) - Dokumentuj procesy drukowania (
-print-to-defaultargumenty) - Zapisz używane argumenty wiersza poleceń Sumatra
- Uzyskaj klucz licencyjny IronPDF ze strony ironpdf.com
Aktualizacje kodu
- Zainstaluj
IronPdfpakiet NuGet - Usuń kod procesu Sumatra
- Zamień
Process.Start("SumatraPDF.exe", pdfPath)naPdfDocument.FromFile(pdfPath) - Zamień zewnętrzne wywołania
wkhtmltopdf.exenaChromePdfRenderer.RenderHtmlAsPdf() - Zamień zewnętrzne wywołania
pdftotext.exenapdf.ExtractAllText() - Zamień wywołania procesu
-print-to-defaultnapdf.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

