PrinceXML'den IronPDF'e C# ile Nasıl Geçilir
PrinceXML'den IronPDF'ye geçiş yapmak PDF oluşturma iş akışınızı harici bir komut satırı işleminden yerel bir .NET kütüphanesine dönüştürür. Bu kılavuz, süreç yönetimi yükünü ortadan kaldıran, dağıtımı basitleştiren ve oluşturmanın ötesinde kapsamlı PDF işleme yetenekleri sağlayan tam bir, adım adım geçiş yolu sağlar.
PrinceXML'den IronPDF'ye Geçiş Nedenleri
PrinceXML'i Anlamak
PrinceXML, HTML içeriğini baskı mükemmelliğinde PDF belgelerine dönüştürmede mükemmel olmak için tasarlanmış sofistike bir araçtır veCSS Sayfalı Medyaözellikleri için özel desteği vardır. Bu uzmanlaşma, PrinceXML'in, yayıncılık veya yasal belgeler gibi detaylı baskı stilizasyonu gerektiren endüstriler için değerli bir özellik olan, belgeleri tasarlanan baskı tasarımlarına yüksek sadakatle işlemesine olanak tanır.
Ancak,PrinceXMLbir .NET kütüphanesi değildir ve ayrı bir komut satırı aracı olarak çalışır, bu da saf .NET çözümlerini tercih eden ortamlar için entegrasyonu zorlaştırabilir. Ayrı bir sunucu işlemine dayanması, ek sistem kaynak yönetimi ve potansiyel olarak proje dağıtımları için karmaşıklığın artmasına neden olur.
Dış Süreç Sorunu
PrinceXML, .NET uygulamaları için önemli mimari zorluklar yaratan ayrı bir komut satırı yürütülebilir dosyası olarak çalışır:
-
İşlem Yönetim Yükü: Dış süreçlerin oluşturulması, izlenmesi ve sonlandırılması gerekir.
-
Yerel .NET Entegrasyonu Yok: stdin/stdout veya geçici dosyalarla iletişim kurar.
-
Dağıtım Karmaşıklığı: Her sunucuya Prince kurulumunu gerektirir.
-
Sunucu Başına Lisanslama: Her dağıtım için ayrı bir lisans ($495+) gereklidir.
-
Hata İşleme Zorluğu: Hata tespiti için metin çıktısını analiz eder.
-
Async/Await Yok: Engelleyen çağrılar veya karmaşık async sarıcılar gereklidir.
- Yol Bağımlılıkları: Prince yürütülebilir dosyasını PATH üzerinde veya mutlak yolda bulmak zorundadır.
PrinceXML vsIronPDFKarşılaştırması
| Bağlam | PrinceXML | IronPDF |
|---|---|---|
| Mimari | Harici Süreç | Yerlisin .NET Kutuphane |
| Entegrasyon | Komut Satırı | Doğrudan API |
| Dağıtım | Her sunucuya kurulum | Tekar NuGet paketi |
| Hata İşleme | Metin çıktısını çözümleme | .NET istisnaları |
| Async Destegi | Manuel sarmalayıcılar | Yerel async/await |
| PDF Manipulasyonu | Yalnızca oluşturma | Tam manipülasyon (birleştirme, bölme, düzenleme) |
| Lisanslama | Sunucu başına ($495+) | Geliştirici başına |
| Güncellemeler | Manuel yeniden kurulum | NuGet güncellemesi |
| Hata ayıklama | Zor | Tam hata ayıklayıcı desteği |
| Dijital İmzalar | Hayır | Evet |
| Formlar | Hayır | Evet |
| Docker Desteği | Karmaşık | Basit |
| Bulut Fonksiyonları | Zor | Kolay |
IronPDF, HTML'den PDF'ye dönüştürmenin ötesine geçerek düzenleme, birleştirme ve dijital imzalar gibi ileri düzey PDF manipülasyonu görevlerini içeren ve .NET yerel yetenekleriyle bir alternatif sunar. IronPDF'in API'si basitlik ve kullanım kolaylığı için tasarlanmıştır, geliştiricilerin dönüşümleri ve manipülasyonları minimal kalıp kod ile gerçekleştirmelerine olanak tanır.
2025 ve 2026 boyunca .NET 10 ve C# 14 benimsemeyi planlayan ekipler için IronPDF'in kesintisiz dağıtımı, entegrasyonu .NET çerçevesine kolaylaştırarak dış bağımlılıklar veya sunucu süreçleri gerektirmez.
Başlamadan Önce
Önkoş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ükleme yeteneği
- IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin
NuGet Paket Değişiklikleri
# Install IronPDF
dotnet add package IronPdf
# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
# Install IronPDF
dotnet add package IronPdf
# Remove Prince wrapper if using one
dotnet remove package PrinceXMLWrapper
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"
PrinceXMLKullanımını Araştırın
# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
# Find Prince process calls
grep -r "prince" --include="*.cs" .
grep -r "Process.Start" --include="*.cs" . | grep -i prince
grep -r "@page" --include="*.css" .
grep -r "prince-" --include="*.css" .
API Referansının Tamamı
Namespace Değişiklikleri
// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;
// Before: PrinceXML
using PrinceXMLWrapper;
using System.Diagnostics;
using System.IO;
// After: IronPDF
using IronPdf;
' Before: PrinceXML
Imports PrinceXMLWrapper
Imports System.Diagnostics
Imports System.IO
' After: IronPDF
Imports IronPdf
Komut Satırı ile Yöntem Eşleştirme
| Prince Komutu | IronPDF Eşdeğeri |
|---|---|
prince input.html -o output.pdf |
renderer.RenderHtmlFileAsPdf("input.html").SaveAs("output.pdf") |
prince --style=custom.css input.html |
CSS'i HTML'ye dahil edin veya RenderingOptions kullanın |
prince --javascript |
renderer.RenderingOptions.EnableJavaScript = true |
prince --no-javascript |
renderer.RenderingOptions.EnableJavaScript = false |
prince --page-size=Letter |
renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter |
prince --page-margin=1in |
renderer.RenderingOptions.MarginTop = 72 (72 nokta = 1 inç) |
prince --encrypt |
pdf.SecuritySettings.OwnerPassword = "..." |
prince --user-password=pw |
pdf.SecuritySettings.UserPassword = "pw" |
prince --disallow-print |
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint |
prince --disallow-copy |
pdf.SecuritySettings.AllowUserCopyPasteContent = false |
prince --baseurl=http://... |
renderer.RenderingOptions.BaseUrl = new Uri("http://...") |
prince --media=print |
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print |
prince --media=screen |
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Screen |
CSS @page ve RenderingOptions Eşleştirme
| CSS @page Özelliği | IronPDF Eşdeğeri |
|---|---|
size: A4 |
PaperSize = PdfPaperSize.A4 |
size: Letter |
PaperSize = PdfPaperSize.Letter |
size:A4landscape |
PaperSize = PdfPaperSize.A4 + PaperOrientation = Landscape |
margin: 2cm |
MarginTop/Bottom/Left/Right = 56 |
margin-top: 1in |
MarginTop = 72 |
@top-center { content: "..." } |
Merkezlenmiş div ile HtmlHeader |
@bottom-right { content: counter(page) } |
HtmlFooter ile {page} yer tutucu |
Sayfa Boyutu Dönüşümleri
| Boyut | Puanlar | Milimetre |
|---|---|---|
| Mektup | 612 x 792 | 216 x 279 |
| A4 | 595 x 842 | 210 x 297 |
| Legal | 612 x 1008 | 216 x 356 |
| 1 inç | 72 | 25.4 |
| 1 cm | 28.35 | 10 |
Kod Geçiş Örnekleri
Örnek 1: HTML Dosyasını PDF'ye Dönüştürme
Önceki (PrinceXML):
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
class Program
{
static void Main()
{
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.Convert("input.html", "output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
class Program
{
static void Main()
{
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.Convert("input.html", "output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports PrinceXMLWrapper
Imports System
Module Program
Sub Main()
Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
prince.Convert("input.html", "output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Module
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
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();
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
Bu örnek temel mimari farkı göstermektedir. PrinceXML, çalıştırılabilir dosya için tam yolu ("C:\\Program Files\\Prince\\engine\\bin\\prince.exe") sağlayarak bir Prince nesnesinin oluşturulmasını ve ardından giriş ve çıkış yolları ile Convert() çağrılmasını gerektirir.
IronPDF, yol bağımlılıklarını tamamen ortadan kaldırır: bir ChromePdfRenderer oluşturun, HTML dosya yolu ile RenderHtmlFileAsPdf() çağırın ve sonucu yazmak için SaveAs() kullanın. Yürütülebilir dosya yolları yok, işlem yönetimi yok, yol bağımlılıkları yok. Kapsamlı örnekler için HTML'den PDF'e döndürme belgesine bakın.
Örnek 2: URL'yi PDF'ye Dönüştürme Seçenekleriyle
Önceki (PrinceXML):
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
class Program
{
static void Main()
{
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.SetJavaScript(true);
prince.SetEncrypt(true);
prince.SetPDFTitle("Website Export");
prince.Convert("https://example.com", "webpage.pdf");
Console.WriteLine("URL converted to PDF");
}
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
class Program
{
static void Main()
{
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.SetJavaScript(true);
prince.SetEncrypt(true);
prince.SetPDFTitle("Website Export");
prince.Convert("https://example.com", "webpage.pdf");
Console.WriteLine("URL converted to PDF");
}
}
Imports PrinceXMLWrapper
Imports System
Class Program
Shared Sub Main()
Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
prince.SetJavaScript(True)
prince.SetEncrypt(True)
prince.SetPDFTitle("Website Export")
prince.Convert("https://example.com", "webpage.pdf")
Console.WriteLine("URL converted to PDF")
End Sub
End Class
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.PdfTitle = "Website Export";
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.Encrypt("password");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("URL converted to PDF");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.PdfTitle = "Website Export";
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.Encrypt("password");
pdf.SaveAs("webpage.pdf");
Console.WriteLine("URL converted to PDF");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.PdfTitle = "Website Export"
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.Encrypt("password")
pdf.SaveAs("webpage.pdf")
Console.WriteLine("URL converted to PDF")
End Sub
End Class
Bu örnek,PrinceXMLseçeneklerininIronPDFözellikleriyle eşleşmesini gösterir.PrinceXMLdönüştürmeden önce (SetJavaScript(), SetEncrypt(), SetPDFTitle()) setter yöntemlerini kullanır. IronPDF, önceden oluşturma ayarları için RenderingOptions özelliklerini ve PdfDocument nesnesi üzerinde Encrypt() gibi sonrasında çalıştırılacak yöntemleri kullanır.
Anahtar eşlemeler:
prince.SetJavaScript(true)→renderer.RenderingOptions.EnableJavaScript = trueprince.SetPDFTitle("...")→renderer.RenderingOptions.PdfTitle = "..."prince.SetEncrypt(true)→pdf.Encrypt("password")(IronPDF bir parola gerektirir)
Detayli bilgi icin eğitimlerimize bakin.
Örnek 3: HTML Dizesini PDF'ye Dönüştürme
Önceki (PrinceXML):
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;
class Program
{
static void Main()
{
string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
File.WriteAllText("temp.html", html);
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.Convert("temp.html", "styled-output.pdf");
Console.WriteLine("Styled PDF created");
}
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXMLWrapper;
using System;
using System.IO;
class Program
{
static void Main()
{
string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
File.WriteAllText("temp.html", html);
Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
prince.Convert("temp.html", "styled-output.pdf");
Console.WriteLine("Styled PDF created");
}
}
Imports PrinceXMLWrapper
Imports System
Imports System.IO
Module Program
Sub Main()
Dim html As String = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>"
File.WriteAllText("temp.html", html)
Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
prince.Convert("temp.html", "styled-output.pdf")
Console.WriteLine("Styled PDF created")
End Sub
End Module
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-output.pdf");
Console.WriteLine("Styled PDF created");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
string html = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-output.pdf");
Console.WriteLine("Styled PDF created");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim html As String = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("styled-output.pdf")
Console.WriteLine("Styled PDF created")
End Sub
End Class
Bu örnek önemli bir farkı vurgular:PrinceXMLdosya girdisi gerektirir, bu yüzden dönüştürmeden önce geçici bir dosya (File.WriteAllText("temp.html", html)) oluşturmalısınız. IronPDF'in RenderHtmlAsPdf() doğrudan HTML dizgilerini kabul eder—geçici dosyalar, temizlik kodu, disk G/Ç üstsel maliyeti yoktur.
CSS Üzerinde Medya Geçişi
PrinceXML'inCSS Sayfalı Medyadesteği güçlü olmasına rağmen, başka yerlerde çalışmayacak Prince'e özgü CSS ile satıcı bağımlılığı yaratır:
PrinceXML CSS:
@page {
size: A4;
margin: 2cm;
@top-center {
content: "Document Title";
}
@bottom-right {
content: counter(page);
}
}
/* Prince-specific extensions */
prince-pdf-page-label: "Chapter " counter(chapter);
prince-pdf-destination: attr(id);
IronPDF C# (eşdeğer):
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56; // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
MaxHeight = 40
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 56; // ~2cm
renderer.RenderingOptions.MarginBottom = 56;
renderer.RenderingOptions.MarginLeft = 56;
renderer.RenderingOptions.MarginRight = 56;
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
MaxHeight = 40
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
MaxHeight = 25
};
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 56 ' ~2cm
renderer.RenderingOptions.MarginBottom = 56
renderer.RenderingOptions.MarginLeft = 56
renderer.RenderingOptions.MarginRight = 56
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:center;'>Document Title</div>",
.MaxHeight = 40
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>",
.MaxHeight = 25
}
Yaygın CSS Geçiş Sorunları
Sorun 1: CSS @page Çalışmıyor
IronPDF, @page desteği sınırlı olan Chromium kullanır. CSS kurallarını RenderingOptions'a dönüştürün.
Sorun 2: Sayfa Kenar Boşluğu Kutuları Eksik
CSS kenar boşluğu kutuları (@top-center, @bottom-right) Prince'e özeldir. Bunun yerine HtmlFooter kullanın.
Sorun 3: string-set/içerik Çalışmıyor
string-set CSS özelliği Prince'e özeldir. <title> etiketinden {html-title} yer tutucu kullanın:
<title>Chapter 1: Introduction</title>
<title>Chapter 1: Introduction</title>
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div>{html-title}</div>"
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = "<div>{html-title}</div>"
};
Sorun 4: counter(pages) Yanlış
CSS sayaçları yerine IronPDF'in {total-pages} yer tutucusunu kullanın.
Performans Karşılaştırması
| İşlem | PrinceXML | IronPDF |
|---|---|---|
| Basit HTML | ~400ms | ~300ms |
| Karmaşık CSS | ~600ms | ~400ms |
| JavaScriptsayfaları | Sınırlı | ~500ms |
| Büyük Belgeler | ~1500ms | ~1000ms |
| Eşzamanlı (10) | ~4000ms | ~1500ms |
| Başlangıç yükü | ~200ms | ~50ms |
Geçiş Sonrası Yeni Özellikler
IronPDF'e geçiş yaptıktan sonra PrinceXML'in sağlayamayacağı yetenekler elde edersiniz:
PDF Birleştirme
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
Dim pdf1 = PdfDocument.FromFile("chapter1.pdf")
Dim pdf2 = PdfDocument.FromFile("chapter2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("complete_book.pdf")
Filigranlar
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");
IRON VB CONVERTER ERROR developers@ironsoftware.com
Dijital İmzalar
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);
Dim signature = New PdfSignature("certificate.pfx", "password")
pdf.Sign(signature)
Form Doldurma
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("Name").Value = "John Doe";
pdf.SaveAs("filled_form.pdf");
Dim pdf = PdfDocument.FromFile("form.pdf")
pdf.Form.GetFieldByName("Name").Value = "John Doe"
pdf.SaveAs("filled_form.pdf")
Özellik Karsilastirma Ozeti
| Özellik | PrinceXML | IronPDF |
|---|---|---|
| Yerel .NET | Hayır | Evet |
| Harici Süreç | Gerekli | Hayır |
| Async Destegi | Manuel sarmalama | Yerel async/await |
| CSS Sayfalı Medya | Desteklenir | RenderingOptions Üzerinden |
| CSS Grid | Evet | Evet |
| Flexbox | Evet | Evet |
| JavaScript | Sınırlı | Tam ES2024 |
| Oluşturma | Evet | Evet |
| Birleştirme | Hayır | Evet |
| Ayırma | Hayır | Evet |
| Düzenleme | Hayır | Evet |
| Filigranlar | Yalnızca CSS | HTML/CSS + API |
| Dijital İmzalar | Hayır | Evet |
| PDF/A | Evet | Evet |
| Şifreleme | Evet | Evet |
| Formlar | Hayır | Evet |
| NuGet Paketi | Hayır | Evet |
| Sunucu Kurulumu | Gerekli | Hayır |
Goc Kontrol Listesi
Geçiş Öncesi
- Tüm Prince komut satırı çağrılarını belirleyin
- Kullanılan CSS @page kurallarını belgelendirin
- Prince'e özel CSS özelliklerini listele (
prince-*,string-set) - Herhangi bir PrinceJavaScriptişlevini not edin
- Kullanılan PDF özelliklerini belirleyin (şifreleme, meta veriler)
- ironpdf.com adresindenIronPDFlisans anahtarını alın
Kod Değişiklikleri
PrinceXMLWrapperNuGet paketini kaldırınIronPdfNuGet paketini yükleyin- Ad alanı eklerini güncelleyin
PrinceoluşturmalarınıChromePdfRendererile değiştirinprince.Convert()'yiRenderHtmlFileAsPdf()veyaRenderHtmlAsPdf()ile değiştirin- Setter yöntemlerini
RenderingOptionsözelliklerine dönüştürün - @page CSS'i
RenderingOptions'ya taşıyın - Kenar kutularını
HtmlFooterile değiştirin - CSS sayaçlarını
{total-pages}yer tutucularına dönüştürün - HTML dizeleri için geçici dosya işlemini kaldırın
- Uygulama başlatıldığında lisans başlatma ekleyin
Geçişten Sonra
- HTML dosya dönüşümünü test edin
- HTML dize dönüşümünü test edin
- URL dönüşümünü test edin
- Sayfa boyutlarının eşleştiğini doğrulayın
- Kenar boşluklarının eşleştiğini doğrulayın
- Başlıkları ve alt bilgileri test edin
- Sayfa numaralarını doğrulayın
- Şifreleme/güvenliği test edin
- Sunuculardan Prince kurulumunu kaldırın
- Dağıtım betiklerini güncelleyin

