C#'ta Sumatra PDF'den IronPDF'ye Nasıl Geçilir
Sumatra PDF'den IronPDF'e geçmek, PDF iş akışınızı bir masaüstü görüntüleyici uygulaması ile harici süreç yönetiminden, tam PDF oluşturma, manipülasyon ve çıkarma yeteneklerine sahip yerel bir .NET kütüphane entegrasyonuna dönüştürür. Bu kılavuz, dış bağımlılıkları, AGPLv3 copyleft yükümlülüklerini ve Sumatra PDF'in bir geliştirici kütüphanesi değil, bir görüntüleyici/yazdırıcı olduğu temel sınırlamayı ortadan kaldıran tam adım adım bir geçiş yolu sağlar.
Sumatra PDF'den IronPDF'e Neden Geçilmeli
Sumatra PDF'yi Anlamak
Sumatra PDF, sadeliği ve hızı ile tanınan hafif, açık kaynaklı birWindowsPDF okuyucu/yazdırıcısıdır. Ayrıca EPUB, MOBI, CBZ/CBR, FB2, CHM, XPS ve DjVu dosyalarını da görüntüler. Ancak, Sumatra PDF, PDF dosyalarını görüntüleme ve yazdırmanın ötesinde oluşturma veya değiştirme yeteneklerini sağlamaz ve resmi bir .NET SDK veya NuGet paketi yoktur — topluluk kaplamaları basitçe SumatraPDF.exe'e dış komut gönderir.
Sumatra PDF bir geliştirme kütüphanesi değil, bağımsız birWindowsmasaüstü görüntüleyici/yazdırıcı uygulamasıdır. .NET uygulamanızdaSumatra PDFkullanıyorsanız, muhtemelen:
- PDF'leri görüntülemek için bir dış süreç olarak
SumatraPDF.exebaşlatma - Komut satırı ile PDF yazdırma (
-print-to-default,-print-to "<printer>") - Kullanıcılarınızın yüklemesi gereken bir bağımlılık olarak ona güveniyorsunuz
Sumatra PDFEntegrasyonu ile İlgili Temel Sorunlar
| Sorun | Etki |
|---|---|
| Bir Kütüphane Değil | PDF'leri programatik olarak oluşturamaz veya düzenleyemez |
| Dış Süreç | SumatraPDF.exe doğurtulmasını gerektirir; işlem içi API yok |
| AGPLv3 License | Güçlü copyleft (bazı dosyalar BSD lisanlı); bundling into closed-source products imposes obligations most commercial vendors avoid |
| Kullanıcı Bağımlılığı | Kullanıcılar (veya yükleyiciniz) SumatraPDF.exe'yi diske yerleştirmelidir |
| Sadece CLI | Belgelendirilmiş komut satırı argümanları ile sınırlı |
| Yalnızca Görüntüleme / Yazdırma | PDF'leri oluşturamaz, düzenleyemez veya manipüle edemez |
| Sadece Windows | LinuxveyamacOSyapılandırması yok |
Sumatra PDFvs IronPDF Karşılaştırması
| Özellik | Sumatra PDF | IronPDF |
|---|---|---|
| Tür | Uygulama | Kütüphane |
| PDF Okuma | Evet | Evet |
| PDF Oluşturma | Hayır | Evet |
| PDF Düzenleme | Hayır | Evet |
| Entegrasyon | Sınırlı (standalone) | Uygulamalara tam entegrasyon |
| Lisans | AGPLv3 (bazı dosyalar BSD) | Ticari |
| PDF Oluşturma | Hayır | Evet |
| PDF Düzenleme | Hayır | Evet |
| HTML'den PDF'ye | Hayır | Evet |
| Birleştirme/Bölme | Hayır | Evet |
| Filigranlar | Hayır | Evet |
| Dijital İmzalar | Hayır | Evet |
| Form Doldurma | Hayır | Evet |
| Metin Çıkarımı | Hayır | Evet |
| .NET Entegrasyonu | None | Yerel |
| Web Uygulamaları | Hayır | Evet |
Sumatra PDF'nin aksine,IronPDF herhangi bir belirli masaüstü uygulamasına veya harici sürece bağlanmamıştır. Geliştiricilere doğrudan C# içinde PDF belgelerini dinamik olarak oluşturma, düzenleme ve manipüle etme esnekliğini sağlar. Bu harici süreçlerden ayrılmak belirgin bir avantaj sunar—basit ve uyarlanabilir, sadece görüntülemenin ötesinde geniş bir uygulama yelpazesi için uygundur.
Modern .NET'i hedefleyen ekipler için, IronPDF, Sumatra PDF'in dış işlem yükünü ve AGPLv3 copyleft yükümlülüklerini ortadan kaldıran yerel kütüphane entegrasyonu sağlar.
Başlamadan Önce
Ön Koşullar
- .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet Erişimi: NuGet paketlerini yükleyebilme
- IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin
Kurulum
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Lisans Yapılandırması
// 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"
Tam API Referansı
Ad Alanı Değişiklikleri
// 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
Çekirdek Yetenek Haritaları
| Sumatra PDFYaklaşımı | IronPDF Eşdeğeri | Notlar |
|---|---|---|
Process.Start("SumatraPDF.exe", pdfPath) |
PdfDocument.FromFile() |
PDF yükle |
| Komut satırı argümanları | Yerel API yöntemleri | CLI gerekmez |
Dış pdftotext.exe |
pdf.ExtractAllText() |
Metin çıkarma |
Dış wkhtmltopdf.exe |
renderer.RenderHtmlAsPdf() |
HTML'den PDF'ye |
-print-to-default argümanı |
pdf.Print() |
Yazdırma |
| Mümkün değil | PdfDocument.Merge() |
PDF'leri birleştir |
| Mümkün değil | pdf.ApplyWatermark() |
Filigranlar |
| Mümkün değil | pdf.SecuritySettings |
Parola koruması |
Kod Göç Örnekleri
Örnek 1: HTML'den PDF'ye Dönüştürme
Önceki (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
Sonrası (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'den PDF'ye 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'den PDF'ye conversion.</p>";
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully!");
}
}
Imports IronPdf
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim htmlContent As String = "<h1>Hello World</h1><p>This is HTML'den PDF'ye conversion.</p>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully!")
End Sub
End Module
Bu örnek, temel yapısal farkı gösterir.Sumatra PDFdoğrudan HTML'yi PDF'ye dönüştüremez—bir aracı olarak wkhtmltopdf gibi bir harici araç kullanmanız ve ardından sonucu görüntülemek için Sumatra'yı ayrı bir süreç olarak başlatmanız gerekir. Bu, iki harici çalıştırılabilir dosya ve birden fazla süreç başlatımı gerektirir.
IronPDF, sadece üç satır kodla ChromePdfRenderer ve RenderHtmlAsPdf() kullanır. Harici araçlar yok, süreç yönetimi yok, aracı dosyalar yok. PDF doğrudan bellekte oluşturulur ve SaveAs() ile kaydedilir. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.
Örnek 2: PDF'leri Açma ve Görüntüleme
Önceki (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
Sonrası (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, PDF'lerin görüntülenmesinde başarılıdır, ancak komut satırı argümanları ile harici bir süreç başlatmakla sınırlıdır. PDF içeriğine programatik olarak erişemezsiniz, sadece görüntüleyebilirsiniz.
IronPDF, PDF'yi PdfDocument.FromFile() ile yükleyerek size tam programatik erişim sağlar. Özellikleri PageCount gibi okuyabilir, belgeyi değiştirebilir, değişiklikleri kaydedebilir ve ardından sistemin varsayılan PDF görüntüleyicisi ile açabilirsiniz. Anahtar fark, IronPDF'in sadece bir süreç argümanı değil, gerçek bir API sağlamasıdır. Daha fazla bilgiyi kılavuzlarımızda öğrenin.
Örnek 3: PDF'lerden Metin Çıkarma
Önceki (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
Sonrası (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 bir görüntüleyicidir, bir metin çıkarma kütüphanesi değildir. Metin çıkarmak için, pdftotext.exe gibi dış komut satırı araçlarını kullanmalı, bir süreç başlatmalı, tamamlanmasını beklemeli, çıkış dosyasını okumalı ve tüm ilgili dosya G/Ç ve temizliği ile ilgilenmelisiniz.
IronPDF, tüm belge için ExtractAllText() veya belirli sayfalar için ExtractTextFromPage(0) ile yerel metin çıkarma sağlar. Harici süreçler yok, geçici dosyalar yok, temizlik gerekmez.
Özellik Karşılaştırması
| Özellik | Sumatra PDF | IronPDF | |||
|---|---|---|---|---|---|
| :Oluşturma: | HTML'den PDF'ye | Hayır | Evet | ||
| URL'yi PDF'ye çevir | Hayır | Evet | |||
| Metni PDF'ye | Hayır | Evet | |||
| Görüntüyü PDF'ye | Hayır | Evet | |||
| :Manipülasyon: | PDF'leri birleştir | Hayır | Evet | ||
| PDF Ayırma | Hayır | Evet | |||
| Sayfaları Döndürme | Hayır | Evet | |||
| Sayfaları Silme | Hayır | Evet | |||
| Sayfaları Yeniden Sıralama | Hayır | Evet | |||
| :İçerik: | Filigran Ekle | Hayır | Evet | ||
| Başlıklar/Altbilgiler Ekleme | Hayır | Evet | |||
| Metin Damgası | Hayır | Evet | |||
| Görüntü Damgası | Hayır | Evet | |||
| :Güvenlik: | Şifre Koruması | Hayır | Evet | ||
| Dijital İmzalar | Hayır | Evet | |||
| Şifreleme | Hayır | Evet | |||
| İzin Ayarları | Hayır | Evet | |||
| :Çıkarma: | Metin Çıkarma | Hayır | Evet | ||
| Görüntü Çıkartma | Hayır | Evet | |||
| :Platform: | Windows | Evet | Evet | ||
| Linux | Hayır | Evet | |||
| macOS | Hayır | Evet | |||
| Web Uygulamaları | Hayır | Evet | |||
| Azure/AWS | Hayır | Evet |
Geçiş Sonrası Yeni Özellikler
IronPDF'e geçtikten sonra, Sumatra PDF'nin sağlayamayacağı yetenekleri kazanırsınız:
HTML'den PDF Oluşturma
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")
PDF Birleştirme
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")
Filigranlar
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")
Şifre Koruma
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")
Geçiş Kontrol Listesi
Öncesi-Geçiş
- Tüm Sumatra süreç başlatmalarını belirleyin (
Process.Start("SumatraPDF.exe", ...)) - Belge yazdırma iş akışlarını (
-print-to-defaultargümanları) - Kullanılan herhangi bir Sumatra komut satırı argümanını not edin
- ironpdf.com adresinden IronPDF lisans anahtarını edinin
Kod Güncellemeleri
IronPdfNuGet paketini yükle- Sumatra süreç kodunu kaldır
Process.Start("SumatraPDF.exe", pdfPath)ilePdfDocument.FromFile(pdfPath)ile değiştir- Dış
wkhtmltopdf.exeçağrılarınıChromePdfRenderer.RenderHtmlAsPdf()ile değiştir - Dış
pdftotext.exeçağrılarınıpdf.ExtractAllText()ile değiştir -print-to-defaultsüreç çağrılarınıpdf.Print()ile değiştir- Uygulama başlangıcında lisans başlatma ekle
Test Etme
- PDF oluşturma kalitesini test et
- Yazdırma işlevselliğini doğrula
- Tüm hedef platformlarda test et
- Herhangi bir Sumatra bağımlılığının kalmadığını doğrula
Temizlik
- Yükleyicilerden Sumatra'yı kaldırın
- Belgeleri güncelleyin
- Sistem gereksinimlerinden Sumatra'yı kaldırın

