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

PrinceXML'den IronPDF'e C# ile Nasıl Geçilir

PrinceXML'den IronPDF'e geçiş, PDF üretim iş akışınızı harici bir komut satırı sürecinden yerel bir .NET kütüphanesine dönüştürür. Bu kılavuz, proses yönetimi yükünü ortadan kaldıran, dağıtımı basitleştiren ve üretim ötesinde kapsamlı PDF manipülasyon yetenekleri sağlayan eksiksiz, adım adım bir geçiş yolu sunar.

Neden PrinceXML'den IronPDF'e Geçmelisiniz

PrinceXML'i Anlamak

PrinceXML, CSS Sayfa Medya özelliklerine olan bağlılığı sayesinde HTML içeriğini baskı-mükemmel PDF belgelerine dönüştürmede üstün bir yetenek için tasarlanmış gelişmiş bir araçtır. Bu uzmanlaşma, PrinceXML'in, yayıncılık veya hukuki belgeler gibi detaylı baskı tasarımına ihtiyaç duyan endüstriler için değerli bir nitelik olan belgeleri tasarlanan baskı tasarımlarına yüksek sadakatle oluşturmasını sağlar.

Bununla birlikte,PrinceXMLbir .NET kütüphanesi değildir ve bütünleşik olmayan bir komut satırı aracı olarak çalışır, bu da saf .NET çözümlerini tercih eden ortamlar için entegrasyonu zorlayıcı hale getirebilir. Ayrı bir sunucu sürecine dayanması, ek sistem kaynak yönetimini ve proje dağıtımları için potansiyel olarak artan bir karmaşıklığı içerir.

Harici Proses Problemi

PrinceXML, .NET uygulamaları için önemli mimari zorluklar oluşturan ayrı bir komut satırı yürütülebilir dosyası olarak çalışır:

  1. Proses Yönetimi Yükü: Harici süreçleri oluşturmalı, izlemeli ve sonlandırmalıdır.

  2. Yerli .NET Entegrasyonu Yok: stdin/stdout veya geçici dosyalar yoluyla iletişim kur

  3. Dağıtım Karmaşıklığı: Her sunucuda Prince yüklemesi gerektirir.

  4. Sunucu Başına Lisanslama: Her dağıtım ayrı bir lisans gerektirir.

  5. Hata İşleme Zorluğu: Hata tespiti için metin çıkışını ayrıştır.

  6. Async/Await Yok: Engelleyici çağrılar veya karmaşık senkron-olmayan sarmalayıcılar gerektirir.

  7. Yol Bağımlılıkları: PATH veya mutlak yolda Prince yürütülebilir dosyasını bulmalıdır.

PrinceXMLve IronPDF Karşılaştırması

Aspekt PrinceXML IronPDF
Mimari Harici Süreç Yerel .NET Kütüphanesi
Entegrasyon Komut satırı Doğrudan API
Dağıtım Her sunucuya kurulum Tek bir NuGet paketi
Hata Yönetimi Metin çıktısını ayrıştırma .NET istisnaları
Asenkron Destek Manuel sarmalayıcılar Yerel async/await
PDF Manipülasyonu Yalnızca üretim Tam manipülasyon (birleştir, böl, düzenle)
Lisanslama Masaüstü $495 / Sunucu $3,800; free non-commercial use with logo watermark Her geliştirici için
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 Fonksiyonu Zor Kolay

IronPDF, sadece HTML'den PDF'e dönüştürmenin ötesine geçen, gelişmiş PDF manipülasyon görevlerini içeren, düzenleme, birleştirme ve dijital imzalar gibi .NET yerli yeteneklerine sahip bir alternatif sunar. IronPDF'in API'si, minimal şablon koduyla dönüşümleri ve manipülasyonları gerçekleştirmesine izin vererek basitlik ve kullanım kolaylığı için tasarlanmıştır.

Modern .NET'i benimseyen ekipler için, IronPDF'in sorunsuz dağıtımı, dış bağımlılıklar veya sunucu süreçleri gerektirmez ve böylece .NET frameworke entegrasyonu kolaylaştırır.


Başlamadan Önce

Ön Koş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ükleyebilme
  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ı Araştırması

# 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

Tam API Referansı

Ad Alanı Değişiklikleri

// Before: PrinceXML
using PrinceXML.Wrapper;
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
// Before: PrinceXML
using PrinceXML.Wrapper;
using System.Diagnostics;
using System.IO;

// After: IronPDF
using IronPdf;
Imports IronPdf
Imports System.Diagnostics
Imports System.IO
$vbLabelText   $csharpLabel

Komut Satırından Metoda Haritalama

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 HTML'de CSS 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 puan = 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 Haritalama

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: "..." } Ortalanmış div ile HtmlHeader
@bottom-right { content: counter(page) } HtmlFooter ile {page} placeholder

Sayfa Boyutu Dönüşümleri

Boyut Puanlar Milimetre
Mektup 612 x 792 216 x 279
A4 595 x 842 210 x 297
Hukuki 612 x 1008 216 x 356
1 inç 72 25.4
1 cm 28.35 10

Kod Göç Örnekleri

Örnek 1: HTML Dosyasını PDF'ye Dönüştürme

Önceki (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXML.Wrapper;
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 PrinceXML.Wrapper;
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 PrinceXML.Wrapper
Imports System

Class Program
    Shared 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 Class
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        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()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        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()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
        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 yapısal farkı gösterir. PrinceXML, yürütülebilir dosyanın tam yolu ("C:\\Program Files\\Prince\\engine\\bin\\prince.exe") ile bir Prince nesnesini çalıştırmayı ve ardından giriş ve çıkış yolları ile Convert() çalıştırmayı 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() çağırın. Yürütülebilir yollar, süreç yönetimi, yol bağımlılıkları yok. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 2: Seçeneklerle URL'yi PDF'ye Dönüştürme

Önceki (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXML.Wrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.JavaScript = true;
        prince.Encrypt = true;
        prince.PdfTitle = "Website Export";
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXML.Wrapper;
using System;

class Program
{
    static void Main()
    {
        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        prince.JavaScript = true;
        prince.Encrypt = true;
        prince.PdfTitle = "Website Export";
        prince.Convert("https://example.com", "webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
Imports PrinceXML.Wrapper
Imports System

Class Program
    Shared Sub Main()
        Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
        prince.JavaScript = True
        prince.Encrypt = True
        prince.PdfTitle = "Website Export"
        prince.Convert("https://example.com", "webpage.pdf")
        Console.WriteLine("URL converted to PDF")
    End Sub
End Class
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.Title = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SecuritySettings.OwnerPassword = "owner-password";
        pdf.SecuritySettings.UserPassword = "user-password";
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.EnableJavaScript = true;
        renderer.RenderingOptions.Title = "Website Export";

        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SecuritySettings.OwnerPassword = "owner-password";
        pdf.SecuritySettings.UserPassword = "user-password";
        pdf.SaveAs("webpage.pdf");
        Console.WriteLine("URL converted to PDF");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.EnableJavaScript = True
        renderer.RenderingOptions.Title = "Website Export"

        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SecuritySettings.OwnerPassword = "owner-password"
        pdf.SecuritySettings.UserPassword = "user-password"
        pdf.SaveAs("webpage.pdf")
        Console.WriteLine("URL converted to PDF")
    End Sub
End Class
$vbLabelText   $csharpLabel

Bu örnek,PrinceXMLseçeneklerinin IronPDF özelliklerine nasıl eşlendiğini gösterir. PrinceXML, dönüşüm öncesinde Prince nesnesi üzerinde (JavaScript, Encrypt, PdfTitle) özellikler olarak yapılandırmayı sunar. IronPDF, önceden işleme ayarları için RenderingOptions özelliklerini kullanır ve işlemi sonlandırdıktan sonra şifrelemeyi SecuritySettings yoluyla PdfDocument üzerinde uygular.

Anahtar eşlemeleri:

  • prince.JavaScript = truerenderer.RenderingOptions.EnableJavaScript = true
  • prince.PdfTitle = "..."renderer.RenderingOptions.Title = "..."
  • prince.Encrypt = truepdf.SecuritySettings.OwnerPassword = "..." / pdf.SecuritySettings.UserPassword = "..."

Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: HTML Dizesini PDF'ye Dönüştürme

Önceki (PrinceXML):

// NuGet: Install-Package PrinceXMLWrapper
using PrinceXML.Wrapper;
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>";

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        // ConvertString accepts a raw HTML/XML string directly
        prince.ConvertString(html, "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
// NuGet: Install-Package PrinceXMLWrapper
using PrinceXML.Wrapper;
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>";

        Prince prince = new Prince("C:\\Program Files\\Prince\\engine\\bin\\prince.exe");
        // ConvertString accepts a raw HTML/XML string directly
        prince.ConvertString(html, "styled-output.pdf");
        Console.WriteLine("Styled PDF created");
    }
}
Imports PrinceXML.Wrapper
Imports System

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

        Dim prince As New Prince("C:\Program Files\Prince\engine\bin\prince.exe")
        ' ConvertString accepts a raw HTML/XML string directly
        prince.ConvertString(html, "styled-output.pdf")
        Console.WriteLine("Styled PDF created")
    End Sub
End Module
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        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()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        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()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
        Dim html As String = "<html><head><style>body { font-family: Arial; color: blue; }</style></head><body><h1>Hello World</h1></body></html>"

        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("styled-output.pdf")
        Console.WriteLine("Styled PDF created")
    End Sub
End Class
$vbLabelText   $csharpLabel

Her iki kütüphane de doğrudan bir HTML dizesini kabul eder:PrinceXMLConvertString() ve IronPDFRenderHtmlAsPdf() aracılığıyla. Temel mimari fark kalır — PrinceXML'nin ConvertString, girdiyi temel belirleme altında harici prince ikili dosyasına iletirken,IronPDF herhangi bir harici yürütülebilir dosya olmadan işlemi dahili olarak gerçekleştirir.


CSS Sayfalı Medya Geçişi

PrinceXML'in CSS Sayfalı Medya desteği güçlüdür, ancak başka bir yerde ç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

Ortak CSS Geçiş Sorunları

Sorun 1: CSS @page Çalışmıyor

IronPDF, sınırlı @page desteğine sahip Chromium kullanır. CSS kurallarını RenderingOptions'a dönüştürün.

Sorun 2: Sayfa Kenar Boşluğu Kutuları Eksik

CSS marj kutuları (@top-center, @bottom-right) Prince'e özeldir. Bunun yerine HtmlFooter kullanın.

Sorun 3: string-set/content Çalışmıyor

string-set CSS özelliği Prince'e özeldir. <title> etiketinden {html-title} placeholder 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) Hatalı

CSS sayaçları yerine IronPDF'nin {total-pages} placeholder'ını kullanın.


Performans Karşılaştırması

İşlem PrinceXML IronPDF
Basit HTML ~400ms ~300ms
Karmaşık CSS ~600ms ~400ms
JavaScript sayfaları 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'ye geçiş yaptıktan sonra PrinceXML'in sağlayamadığı yetenekler kazanırsınız:

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 Karşılaştırması Özeti

Özellik PrinceXML IronPDF
Yerel .NET Hayır Evet
Harici Süreç Gereklidir Hayır
Asenkron Destek Manuel sarma Yerel async/await
CSS Paged Media Desteklenen RenderingOptions Aracılığıyla
CSS Izgarası 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 Gereklidir Hayır

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Tüm Prince komut satırı çağrılarını belirleyin
  • Kullanılan CSS @page kurallarını belgeleyin
  • Prince'e özgü CSS özelliklerini listele (prince-*, string-set)
  • Herhangi bir PrinceJavaScriptfonksiyonunu not alın
  • Kullanılan PDF özelliklerini belirleyin (şifreleme, metadata)
  • ironpdf.com adresinden IronPDF lisans anahtarını edinin

Kod Değişiklikleri

  • PrinceXMLWrapper NuGet paketini kaldırın
  • IronPdf NuGet paketini yükleyin
  • Ad alanı ithalatlarını güncelleyin
  • Prince oluşturmasını ChromePdfRenderer ile değiştirin
  • prince.Convert() öğesini RenderHtmlFileAsPdf() veya RenderHtmlAsPdf() ile değiştirin
  • Ayarlayıcı yöntemleri RenderingOptions özelliklerine dönüştürün
  • @page CSS'yi RenderingOptions öğesine taşıyın
  • Marj kutularını HtmlFooter ile değiştirin
  • CSS sayaçlarını {total-pages} placeholder'larına dönüştürün
  • HTML dizgileri için geçici dosya işleme işlemlerini kaldırın
  • Uygulama başlangıcında lisans başlatma ekle

Geçiş Sonrası

  • HTML dosya dönüştürmesini test edin
  • HTML dizesi dönüştürmesini test edin
  • URL dönüştürmesini 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ık ve alt bilgileri test edin
  • Sayfa numaralarını doğrulayın
  • Şifreleme/güvenlik testini yapın
  • Sunuculardan Prince kurulumunu kaldırın
  • Dağıtım betiklerini güncelleyin

PrinceXML, ilgili sahibinin tescilli bir markasıdır. Bu site, YesLogic Pty tarafından onaylanmamış, desteklenmemiş veya sponsor olunmamıştır. Ltd. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.)}]

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

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