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

C#'ta TuesPechkin'den IronPDF'ye Nasıl Geçilir

TuesPechkin, .NET geliştiricilerinin HTML'yi PDF'ye dönüştürmesine yardımcı olan, wkhtmltopdf kitaplığına sarmalanmış bir iplik güvenli paketleyici olarak yıllarca hizmet etti. Ancak, altta yatan wkhtmltopdf teknolojisi en son 2015'te güncellendi ve Aralık 2022'de resmen terk edildi. Bu, geliştirme ekiplerinin artık göz ardı edemeyeceği kritik güvenlik, istikrar ve render sınırlamaları yaratır.

Bu kılavuz, bu geçişi değerlendiren profesyonel .NET geliştiricileri için adım adım talimatlar, kod karşılaştırmaları ve pratik örneklerle, TuesPechkin'den IronPDF'ye eksiksiz bir geçiş yolu sunar.

Neden TuesPechkin'den Şimdi Göç Etmelisiniz?

Güvenliğe duyarlı geliştirme ekipleri için TuesPechkin'den geçiş kararı artık isteğe bağlı değil. Altta yatan wkhtmltopdf kitaplığı, hiçbir zaman düzeltilemeyecek kritik yamalanmamış güvenlik açıkları taşır.

Kritik Güvenlik Açığı: CVE-2022-35583

Özellik Değer
CVE ID CVE-2022-35583
Şiddet KRİTİK (9.8/10)
Saldırı Vektörü
Durum ASLA YAMALANMAYACAK
Etkilenen TümTuesPechkinsürümleri

Wkhtmltopdf koruyucuları, güvenlik açıklarını düzeltmeyeceklerini açıkça belirtti.TuesPechkinkullanan her uygulama kalıcı olarak Sunucu Tarafı Talep Kandırma (SSRF) saldırılarına maruz kalır.

Saldırı Nasıl Çalışır?

Kullanıcı tarafından sağlanan HTML işlenirken, saldırganlar zararlı içerik enjekte edebilir:


<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />

<iframe src="http://169.254.169.254/latest/meta-data/iam/security-credentials/"></iframe>
<img src="http://internal-admin-panel:8080/api/users?export=all" />
HTML

Bu, saldırganların AWS/Azure/GCP metadata uç noktalarına erişmesine, dahili API verilerini çalmasına, dahili ağları portları taramasına ve hassas yapılandırmaları dışa çıkarmasına olanak tanır.

Teknoloji Krizi

TuesPechkin, Chrome öncesi dönem teknolojisi olan Qt WebKit 4.8 kullanan wkhtmltopdf'yi sarar. Bu şu anlama gelir:

  • Flexbox desteği yok
  • CSS Grid desteği yok
  • Kırık JavaScript yürütümü
  • ES6+ desteği yok

İstikrar Krizi

Ilan edilen ThreadSafeConverter ile bile,TuesPechkinyuksek yuk altinda çöker:

// ❌TuesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
// ❌TuesPechkin- "ThreadSafeConverter" still crashes
var converter = new TuesPechkin.ThreadSafeConverter(
    new TuesPechkin.RemotingToolset<PechkinBindings>());

// Under high load, you'll see:
// System.AccessViolationException: Attempted to read or write protected memory
// Process terminated unexpectedly
// Converter hangs indefinitely
' ❌TuesPechkin- "ThreadSafeConverter" still crashes
Dim converter = New TuesPechkin.ThreadSafeConverter(
    New TuesPechkin.RemotingToolset(Of PechkinBindings)())

' Under high load, you'll see:
' System.AccessViolationException: Attempted to read or write protected memory
' Process terminated unexpectedly
' Converter hangs indefinitely
$vbLabelText   $csharpLabel

IronPDF ile TuesPechkin: Özellik Karşılaştırması

Mimari farklılıkları anlamak, teknik karar vericilerin geçiş yatırımını değerlendirmesine yardımcı olur:

Özellik TuesPechkin IronPDF
Lisans Ücretsiz (MIT Lisansı) Ticari
İplik Güvenliği Manuel Yönetim Gerektirir Yerel Destek
Eşzamanlılık Sınırlı, yük altında çökmeye yatkındır Güçlü, yüksek eşzamanlılıkla başa çıkabilir
Gelisim Aktif değil, en son 2015'te güncellendi Aktif, sürekli iyileştirmeler
Kullanım Kolaylığı Karmaşık kurulum Kullanıcı dostu rehberlerle
Dokümantasyon Temel Örneklerle kapsamlı
Güvenlik ❌ Kritik CVE'ler ✅ Bilenen güvenlik açığı yok
HTML to PDF ⚠️ Eski WebKit ✅ Modern Chromium
CSS3 ❌ Kısmen ✅ Destekleniyor
Flexbox/Grid ❌ Desteklenmiyor ✅ Destekleniyor
JavaScript ⚠️ Güvenilmez ✅ Tam ES6+
PDF Manipulasyonu ❌ Mevcut değil ✅ Tam
Dijital İmzalar ❌ Mevcut değil ✅ Tam
PDF/A Uyumluluğu ❌ Mevcut değil ✅ Tam
Form Doldurma ❌ Mevcut değil ✅ Tam
Filigranlar ❌ Mevcut değil ✅ Tam
Birleştir/Böl ❌ Mevcut değil ✅ Tam

Hızlı Başlangıç: TuesPechkin'den IronPDF'ye Geçiş

Geçiş hemen bu temel adımlar ile başlatılabilir.

1. Adım: NuGet Paketlerini Değiştir

TümTuesPechkinpaketlerini kaldırın:

# RemoveTuesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
# RemoveTuesPechkinand all related packages
dotnet remove package TuesPechkin
dotnet remove package TuesPechkin.Wkhtmltox.Win64
dotnet remove package TuesPechkin.Wkhtmltox.Win32
SHELL

IronPDF'i yükleyin:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Adim 2: Yerel Ikilileri Kaldirin

Bu dosya ve klasörleri projenizden silin:

  • wkhtmltox.dll
  • wkhtmltopdf.exe
  • Herhangi bir wkhtmlto* dosyalari
  • TuesPechkin.Wkhtmltox klasoru

Adım 3: Adalanları Güncelleyin

TuesPechkin ad alanlarını IronPdf ad alanı ile değiştirin:

// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
// Before (TuesPechkin)
using TuesPechkin;
using TuesPechkin.Wkhtmltox.Win64;

// After (IronPDF)
using IronPdf;
' Before (TuesPechkin)
Imports TuesPechkin
Imports TuesPechkin.Wkhtmltox.Win64

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

Adim 4: Lisans Icin Yapisallastirma

Uygulama başlangıcında lisans başlatmasını ekleyin:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Kod Geçiş Örnekleri

HTML'i PDF'ye Dönüştürme

En yaygın kullanım senaryosu, bu .NET PDF kütüphaneleri arasındaki karmaşıklık farkını gösterir.

TuesPechkin Yaklaşımı:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Hello World</h1></body></html>";
        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = { new ObjectSettings { HtmlText = html } }
        });

        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
Imports TuesPechkin
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
            .Objects = {New ObjectSettings With {.HtmlText = html}}
        })

        File.WriteAllBytes("output.pdf", pdfBytes)
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        string html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

TuesPechkin surumu, karmasik bir başlatma zinciriyle StandardConverter oluşturmayi gerektirir: RemotingToolset, Win64EmbeddedDeployment ve TempFolderDeployment. Ayrıca baytları manuel olarak dosyaya yazmanız gerekir.

IronPDF bu töreni tamamen ortadan kaldırır. ChromePdfRenderer oluşturun, HTML'i render edin ve kaydedin. Kod, kendi kendini belgelendirir ve dağıtım araç setlerini veya platforma özgü ikili yönetimi anlamayı gerektirmez.

Gelişmiş HTML-PDF senaryoları için HTML'den PDF'e dönüştürme kılavuzuna bakın.

URL'leri PDF'ye Dönüştürme

URL'den PDF'e dönüştürme, benzer karmaşıklık farklılıklarını gösterir.

TuesPechkin Yaklaşımı:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        byte[] pdfBytes = converter.Convert(new HtmlToPdfDocument
        {
            Objects = {
                new ObjectSettings {
                    PageUrl = "https://www.example.com"
                }
            }
        });

        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
Imports TuesPechkin
Imports System.IO

Class Program
    Shared Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim pdfBytes As Byte() = converter.Convert(New HtmlToPdfDocument With {
            .Objects = {
                New ObjectSettings With {
                    .PageUrl = "https://www.example.com"
                }
            }
        })

        File.WriteAllBytes("webpage.pdf", pdfBytes)
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()

        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")

        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

TuesPechkin, bir ObjectSettings.PageUrl bir HtmlToPdfDocument icine gomulmus olarak kullanir. IronPDF, amaci acikca ifade eden ozel bir RenderUrlAsPdf metodu saglar.

Kimlik doğrulama ve ozellestirilmis baslik seçenekleri icin URL'den PDF'ye dokümantasyonu kesfedin.

Özel Rendering Ayarları

Sayfa yönlendirmesi, kağıt boyutu ve kenar boşlukları farklı yapılandırma yaklaşımları gerektirir.

TuesPechkin Yaklaşımı:

// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientation = GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
// NuGet: Install-Package TuesPechkin
using TuesPechkin;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new StandardConverter(
            new RemotingToolset<PdfToolset>(
                new Win64EmbeddedDeployment(
                    new TempFolderDeployment())));

        string html = "<html><body><h1>Custom PDF</h1></body></html>";

        var document = new HtmlToPdfDocument
        {
            GlobalSettings = {
                Orientation = GlobalSettings.PdfOrientation.Landscape,
                PaperSize = GlobalSettings.PdfPaperSize.A4,
                Margins = new MarginSettings { Unit = Unit.Millimeters, Top = 10, Bottom = 10 }
            },
            Objects = {
                new ObjectSettings { HtmlText = html }
            }
        };

        byte[] pdfBytes = converter.Convert(document);
        File.WriteAllBytes("custom.pdf", pdfBytes);
    }
}
Imports TuesPechkin
Imports System.IO

Module Program
    Sub Main()
        Dim converter = New StandardConverter(
            New RemotingToolset(Of PdfToolset)(
                New Win64EmbeddedDeployment(
                    New TempFolderDeployment())))

        Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"

        Dim document = New HtmlToPdfDocument With {
            .GlobalSettings = New GlobalSettings With {
                .Orientation = GlobalSettings.PdfOrientation.Landscape,
                .PaperSize = GlobalSettings.PdfPaperSize.A4,
                .Margins = New MarginSettings With {.Unit = Unit.Millimeters, .Top = 10, .Bottom = 10}
            },
            .Objects = {
                New ObjectSettings With {.HtmlText = html}
            }
        }

        Dim pdfBytes As Byte() = converter.Convert(document)
        File.WriteAllBytes("custom.pdf", pdfBytes)
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Engines.Chrome;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;

        string html = "<html><body><h1>Custom PDF</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);

        pdf.SaveAs("custom.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Engines.Chrome
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()

        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 10
        renderer.RenderingOptions.MarginBottom = 10

        Dim html As String = "<html><body><h1>Custom PDF</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)

        pdf.SaveAs("custom.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

TuesPechkin ayarlari, belge geneli ayarlari icin GlobalSettings ve içerik icin ObjectSettings olarak ayirir.IronPDFher seyi acik ve kesfi kolay özellik adlariyla RenderingOptions icine toplar.

TuesPechkin API ileIronPDFHaritalama Referansı

Bu eşleme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır.

TuesPechkin IronPDF
StandardConverter ChromePdfRenderer
ThreadSafeConverter ChromePdfRenderer
HtmlToPdfDocument Yöntem parametreleri
GlobalSettings RenderingOptions
ObjectSettings.HtmlText RenderHtmlAsPdf(html)
ObjectSettings.PageUrl RenderUrlAsPdf(url)
GlobalSettings.PaperSize RenderingOptions.PaperSize
GlobalSettings.Orientation RenderingOptions.PaperOrientation
MarginSettings MarginTop, MarginBottom, vb.
[page] placeholder {page} placeholder
[toPage] placeholder {total-pages} placeholder
RemotingToolset Gerekli değil
Win64EmbeddedDeployment Gerekli değil
TempFolderDeployment Gerekli değil

Yaygın Taşınma Sorunları ve Çözümleri

Sorun 1: Karmaşık Başlatma Kodu

Problem: TuesPechkin, dağıtım araç setleri ile karmaşık dönüştürücü kurulumu gerektirir.

Çözüm:IronPDFbasittir:

// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
// Before (TuesPechkin)
var converter = new StandardConverter(
    new RemotingToolset<PdfToolset>(
        new Win64EmbeddedDeployment(
            new TempFolderDeployment())));

// After (IronPDF)
var renderer = new ChromePdfRenderer();
// That's it!
' Before (TuesPechkin)
Dim converter = New StandardConverter(
    New RemotingToolset(Of PdfToolset)(
        New Win64EmbeddedDeployment(
            New TempFolderDeployment())))

' After (IronPDF)
Dim renderer = New ChromePdfRenderer()
' That's it!
$vbLabelText   $csharpLabel

Sorun 2: İş Parası Güvenliği Çöküşleri

Sorun: TuesPechkin'in ThreadSafeConverter, AccessViolationException ile yuksek yuk altinda hala çöker.

Çözüm:IronPDFyerel iş parçacığı güvenliğine sahiptir—özel bir yapılandırma gerektirmez:

//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
//IronPDFis inherently thread-safe
var renderer = new ChromePdfRenderer();
// Use from any thread without crashes
'IronPDF is inherently thread-safe
Dim renderer As New ChromePdfRenderer()
' Use from any thread without crashes
$vbLabelText   $csharpLabel

Sorun 3: Sayfa Numarası Placeholder Söz Dizimi

Sorun:TuesPechkin[page] ve [toPage] placeholder'lari kullanir.

Çözüm: IronPDF'nin placeholder söz dizimine güncelleyin:

// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
// Before (TuesPechkin)
"Page [page] of [toPage]"

// After (IronPDF)
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

Sorun 4: CSS Yerleşimi Bozuk

Problem: Flexbox ve Grid yerleşimleri, wkhtmltopdf Qt WebKit 4.8 kullandığı için TuesPechkin'de çalışmıyor.

Çözüm:IronPDFile uygun modern CSS kullanın:

// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
// Remove table-based workarounds, use modern CSS
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";

var pdf = renderer.RenderHtmlAsPdf(html);
// Works correctly with Chromium!
' Remove table-based workarounds, use modern CSS
Dim html As String = "
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>"

Dim pdf = renderer.RenderHtmlAsPdf(html)
' Works correctly with Chromium!
$vbLabelText   $csharpLabel

Sorun 5: Yerel İkili Yönetimi

Problem: TuesPechkin, platforma özgü wkhtmltopdf ikilileri ve yol yapılandırması gerektirir.

Çözüm:IronPDFtüm bağımlılıkları NuGet ile halleder—yönetilecek yerel ikililere gerek yoktur:

# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
# Just install the package
dotnet add package IronPdf
# No wkhtmltopdf binaries needed
SHELL

TuesPechkin Geçiş Kontrol Listesi

Ön Taşınma Görevleri

TümTuesPechkinkullanımını tanımlamak için kod tabanınızı denetleyin:

grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
grep -r "using TuesPechkin" --include="*.cs" .
grep -r "ThreadSafeConverter\|RemotingToolset" --include="*.cs" .
SHELL

Gecerli GlobalSettings konfigürasyonlarini belgeler (kagit boyutu, yonlendirme, kenar bosluklari). ObjectSettings konfigürasyonlarini belgeler (HTML icerigi, URL'ler). Dönüşüm için başlık/altbilgi uygulamalarını belirleyin. Kaldırma için tüm wkhtmltopdf ikililerini bulun.

Kod Güncelleme Görevleri

1.TuesPechkinNuGet paketlerini kaldırın

  1. Yerel wkhtmltopdf ikililerini kaldırın
  2. IronPdf NuGet paketini yükleyin
  3. TuesPechkin'dan IronPdf'a using ifadelerini güncelleyin
  4. Başlangıçta lisans anahtarı başlatma ekleyin
  5. Dönüştürücüleri ChromePdfRenderer ile değiştirin
  6. GlobalSettings'yi RenderingOptions'a dönüştürün
  7. ObjectSettings'yi metot parametrelerine dönüştürün
  8. Kenar boşluğu yapılandırmasını bireysel özelliklere güncelleyin
  9. Baslik/altbilgi sentaksini HTML-tabanli HtmlHeaderFooter olarak güncelleyin
  10. Sayfa placeholder sentaks hatasini düzeltin ([page]{page})
  11. Tüm dağıtım/araç seti kodunu kaldırın

Taşınım Sonrası Test

Geçiş sonrasında aşağıdaki yönleri doğrulayın:

  • Tüm birim testlerini çalıştırın
  • İş parası güvenlikli senaryolarını test edin (IronPDF çoklu iş parçacığını çökmeden işler)
  • PDF cikis kalitesini karsilastirin (Chromium daha dogru render eder)
  • CSS renderingini doğrulayın (Flexbox ve Grid artık çalışır)
  • JavaScript yürütmesini test edin (ES6+ artık destekleniyor)
  • Başlık/altbilgi renderını test edin
  • Performans testi toplu işlemlerini
  • Hiçbir wkhtmltopdf ikilisi kalmadığını doğrulamak için güvenlik taraması yapın

IronPDF'e Geçişin Temel Avantajları

TuesPechkin'den IronPDF'ye geçiş, bir dizi kritik avantaj sağlar:

Güvenlik:CVE-2022-35583ve diğer wkhtmltopdf zafiyetleri ortadan kaldırılmıştır. IronPDF'in Chromium motoru düzenli güvenlik güncellemeleri alır.

Yerel Thread Guvenligi: Artık daha karmaşık ThreadSafeConverter konfigürasyonları yok. Yuk altinda daha fazla AccessViolationException çökmesi yok.IronPDFeşzamanlılığı otomatik olarak işler.

Modern Rendering Motoru: Tam CSS3, Flexbox, Grid ve ES6+ JavaScript desteği. PDF'leriniz, modern tarayıcılarda içerik olarak göründüğü gibi render edilir.

Basitleştirilmiş Dağıtım: Yönetilecek platforma özgü ikililer yok. Daha fazla RemotingToolset, Win64EmbeddedDeployment veya TempFolderDeployment seremonisi yok. Sadece NuGet paketini yükleyin.

Aktif Geliştirme: 2026 boyunca .NET 10 ve C# 14 benimsenmesi arttıkça, IronPDF'in düzenli güncellemeleri mevcut ve gelecekteki .NET sürümleriyle uyumluluğu sağlar.

Genişletilmiş Yetenekler:TuesPechkinyalnızca HTML'den PDF'e dönüştürür. IronPDF, PDF manipülasyonu, dijital imzalar, PDF/A uyumluluk, form doldurma, filigranlar ve birleştirme/bölme işlemleri ekler.

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