Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

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:

  1. İşlem Yönetim Yükü: Dış süreçlerin oluşturulması, izlenmesi ve sonlandırılması gerekir.

  2. Yerel .NET Entegrasyonu Yok: stdin/stdout veya geçici dosyalarla iletişim kurar.

  3. Dağıtım Karmaşıklığı: Her sunucuya Prince kurulumunu gerektirir.

  4. Sunucu Başına Lisanslama: Her dağıtım için ayrı bir lisans ($495+) gereklidir.

  5. Hata İşleme Zorluğu: Hata tespiti için metin çıktısını analiz eder.

  6. Async/Await Yok: Engelleyen çağrılar veya karmaşık async sarıcılar gereklidir.

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

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleme yeteneği
  3. 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
SHELL

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"
$vbLabelText   $csharpLabel

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" .
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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 = true
  • prince.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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
}
$vbLabelText   $csharpLabel

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>
HTML
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = "<div>{html-title}</div>"
};
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

Ö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

  • PrinceXMLWrapper NuGet paketini kaldırın
  • IronPdf NuGet paketini yükleyin
  • Ad alanı eklerini güncelleyin
  • Prince oluşturmalarını ChromePdfRenderer ile değiştirin
  • prince.Convert()'yi RenderHtmlFileAsPdf() veya RenderHtmlAsPdf() 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ı HtmlFooter ile 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

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara