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

DinkToPdf'ten IronPDF'e C# ile Nasıl Geçilir

DinkToPdf, wkhtmltopdf'u sarmalar ve tüm guvenlik aciklari ve teknik sinirlandirmalarini miras alir. Bu sorunlari anlamak, goc etme aciliyetini degerlendirmeniz icin kritiktir.

Onemli Guvenlik Sorunlari

DinkToPdf, wkhtmltopdf'ten güncelemedigi onemli guvenlik aciklarini miras alir:

  1. CVE-2022-35583 (SSRF): Sunucu-Tarafi Istem Sahtekarligi, saldirganlarin ic ag kaynaklarina erismesine izin verir
  2. Terk Edilmis Proje: wkhtmltopdf 2020'den beri bakim yapilmiyor
  3. Guvenlik Yamasi Yok: Bilinen aciklar asla duzelmeyecek

Teknik Problemler

Sorun Etkisi
İplik Güvenliği SynchronizedConverter hala es zamanli yuk altinda uretimde coker
Yerel İkili Dosyalar Platforma ozgu libwkhtmltox ikilileri ile karmaşık kurulum
CSS Sinirlamalari Flexbox, Grid veya modern CSS destegi yok
JavaScript Tutarsiz calisma, zaman asimlari
Rendering Güncel olmayan WebKit motoru (2015 civari)
Bakım Son güncelleme: 2018

Mimari Karşılaştırma

Bağlam DinkToPdf IronPDF
Güvenlik CVE-2022-35583 (SSRF), günceleme yok Bilinen bir güvenlik açığı yok
Render Motoru Güncel olmayan WebKit (2015) Modern Chromium
İplik Güvenliği Eşzamanlı kullanımda kilitlenmeler Tamamen eşzamanlı güvenli
Yerel Bağımlılıklar Platforma özel binary'ler Tamamen NuGet paketi
CSS Desteği Flexbox/Gridyok Tam CSS3
JavaScript Sınırlı, tutarsız Desteklenir
Bakım Terk (2018) Aktif olarak bakım yapılıyor

Özellik Karşılaştırma

Özellik DinkToPdf IronPDF
HTML'den PDF'ye ✅ (eski motor) ✅ (Chromium)
URL'den PDF'ye
Özel kenar boşlukları
Üstbilgi/Altbilgi ✅ (sınırlı) ✅ (tam HTML)
CSS3 ❌ Sınırlı ✅Tam
Flexbox/Grid
JavaScript ⚠️ Sınırlı ✅Tam
PDF manipülasyonu
Form doldurma
Dijital imzalar
Şifreleme
Filigranlar
Birleştirme/Ayırma

Önceden Taşıma Hazırlığı

Önkoşullar

Ortamınızın bu gereksinimlere uygun olduğunu doğrulayın:

  • .NET Framework 4.6.2+ veya .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ veya C# uzantılı VS Code
  • NuGet Paket Yöneticisi erişimi -IronPDFlisans anahtarı (ücretsiz deneme ironpdf.com adresinde mevcuttur)

DinkToPdfKullanimini Denetleyin

TumDinkToPdfreferanslarini belirlemek icin cozum dizininizde bu komutlari calistirin:

# Find allDinkToPdfusages in your codebase
grep -r "using DinkToPdf" --include="*.cs" .
grep -r "SynchronizedConverter\|HtmlToPdfDocument\|ObjectSettings" --include="*.cs" .

# Find NuGet package references
grep -r "DinkToPdf" --include="*.csproj" .

# Find wkhtmltopdf binaries
find . -name "libwkhtmltox*"
# Find allDinkToPdfusages in your codebase
grep -r "using DinkToPdf" --include="*.cs" .
grep -r "SynchronizedConverter\|HtmlToPdfDocument\|ObjectSettings" --include="*.cs" .

# Find NuGet package references
grep -r "DinkToPdf" --include="*.csproj" .

# Find wkhtmltopdf binaries
find . -name "libwkhtmltox*"
SHELL

Beklenen Büyük Değişiklikler

Değişiklik DinkToPdf IronPDF Etkisi
Dönüştürucu SynchronizedConverter(new PdfTools()) ChromePdfRenderer Daha basit örnekleme
Doküman HtmlToPdfDocument Dogrudan metod cagrisi Doküman nesnesi yok
Ayarlar GlobalSettings + ObjectSettings RenderingOptions Tek opsiyon nesnesi
Dondurulecek Tip byte[] PdfDocument Daha guclu nesne
Ikili libwkhtmltox.dll/so Yok (yonetilen) Yerel dosyalari kaldirin
Is parcacigi guvenligi SynchronizedConverter gerekli Varsıyılan olarak iplik guvenli Daha basit kod
DI Singleton gerekli Herhangi bir yasam suresi Esnek

Adım Adım Geçiş Süreci

Adım 1: NuGet Paketlerini Güncelleyin

DinkToPdf'u kaldirin veIronPDFyukleyin:

# Remove DinkToPdf
dotnet remove package DinkToPdf

# Install IronPDF
dotnet add package IronPdf
# Remove DinkToPdf
dotnet remove package DinkToPdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Adim 2: Yerel Ikilileri Kaldirin

Projenizden bu platforma ozgu dosyalari silin:

  • libwkhtmltox.dll (Windows)
  • libwkhtmltox.so (Linux)
  • libwkhtmltox.dylib (macOS)

IronPDF'un yerel bagimliligi yok—her sey yonetilen kod.

Adım 3: Ad Alanı Referanslarını Güncelleyin

DinkToPdf ad alanlariniIronPDFile değiştirin:

// Remove these
using DinkToPdf;
using DinkToPdf.Contracts;

// Add this
using IronPdf;
// Remove these
using DinkToPdf;
using DinkToPdf.Contracts;

// Add this
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Adim 4: Lisansi Ayarlayin

// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Global.asax)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Tam API Geçiş Referansı

Çekirdek Sınıf Eşleştirmesi

DinkToPdf IronPDF
SynchronizedConverter ChromePdfRenderer
BasicConverter ChromePdfRenderer
PdfTools Gerekli değil
HtmlToPdfDocument Gerekli değil
GlobalSettings RenderingOptions
ObjectSettings RenderingOptions
MarginSettings Ayrı kenar boşluğu özellikleri

GlobalSettings Eslestirmesi

DinkToPdf GlobalSettings IronPDF Eşdeğeri
ColorMode = ColorMode.Color Varsıyılan (her zaman renkli)
Orientation = Orientation.Portrait PaperOrientation = PdfPaperOrientation.Portrait
Orientation = Orientation.Landscape PaperOrientation = PdfPaperOrientation.Landscape
PaperSize = PaperKind.A4 PaperSize = PdfPaperSize.A4
Margins = new MarginSettings() Ayrı kenar boşluğu özellikleri

MarginSettings Eslestirmesi

DinkToPdf Marginleri IronPDF Eşdeğeri
Margins.Top = 10 MarginTop = 10
Margins.Bottom = 10 MarginBottom = 10
Margins.Left = 15 MarginLeft = 15
Margins.Right = 15 MarginRight = 15

Kod Geçiş Örnekleri

Temel HTML'den PDF'e

Temel donusum, DinkToPdf'un detayli konfigrasyonundan IronPDF'in optimize edilmis API'sina dramatik basitlesmeyi gösterir.

DinkToPdf Uygulamasi:

// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
            },
            Objects = {
                new ObjectSettings() {
                    HtmlContent = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
            },
            Objects = {
                new ObjectSettings() {
                    HtmlContent = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("output.pdf", pdf);
    }
}
Imports DinkToPdf
Imports DinkToPdf.Contracts
Imports System.IO

Module Program
    Sub Main()
        Dim converter = New SynchronizedConverter(New PdfTools())
        Dim doc = New HtmlToPdfDocument() With {
            .GlobalSettings = New GlobalSettings() With {
                .ColorMode = ColorMode.Color,
                .Orientation = Orientation.Portrait,
                .PaperSize = PaperKind.A4
            },
            .Objects = {
                New ObjectSettings() With {
                    .HtmlContent = "<h1>Hello World</h1><p>This is a PDF from HTML.</p>",
                    .WebSettings = New WebSettings() With {
                        .DefaultEncoding = "utf-8"
                    }
                }
            }
        }
        Dim pdf As Byte() = converter.Convert(doc)
        File.WriteAllBytes("output.pdf", pdf)
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML.</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML.</p>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML.</p>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF, 20 satirlikDinkToPdfkonfigrasyonunu 4 satirla azaltir. No SynchronizedConverter, no PdfTools, no HtmlToPdfDocument, no ObjectSettings—sadece render ve kaydet. Daha fazla seçenek icin HTML'den PDF'ye belgelerini gorun.

URL'den PDF'ye Dönüşüm

DinkToPdf Uygulamasi:

// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
            },
            Objects = {
                new ObjectSettings() {
                    Page = "https://www.example.com",
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Portrait,
                PaperSize = PaperKind.A4,
            },
            Objects = {
                new ObjectSettings() {
                    Page = "https://www.example.com",
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("webpage.pdf", pdf);
    }
}
Imports DinkToPdf
Imports DinkToPdf.Contracts
Imports System.IO

Module Program
    Sub Main()
        Dim converter = New SynchronizedConverter(New PdfTools())
        Dim doc = New HtmlToPdfDocument() With {
            .GlobalSettings = New GlobalSettings() With {
                .ColorMode = ColorMode.Color,
                .Orientation = Orientation.Portrait,
                .PaperSize = PaperKind.A4
            },
            .Objects = New List(Of ObjectSettings) From {
                New ObjectSettings() With {
                    .Page = "https://www.example.com"
                }
            }
        }
        Dim pdf As Byte() = converter.Convert(doc)
        File.WriteAllBytes("webpage.pdf", pdf)
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

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

IronPDF'nin RenderUrlAsPdf, iç içe geçmiş ObjectSettings.Page yapılandırmasını doğrudan bir metot çağrısı ile değiştirir. Daha fazla seçenek icin URL'den PDF'ye belgelerini gorun.

Belirli Ayarlar ile Yatay ve Kenar Boşlukları

DinkToPdf Uygulamasi:

// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Landscape,
                PaperSize = PaperKind.A4,
                Margins = new MarginSettings { Top = 10, Bottom = 10, Left = 15, Right = 15 }
            },
            Objects = {
                new ObjectSettings() {
                    HtmlContent = "<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("custom.pdf", pdf);
    }
}
// NuGet: Install-Package DinkToPdf
using DinkToPdf;
using DinkToPdf.Contracts;
using System.IO;

class Program
{
    static void Main()
    {
        var converter = new SynchronizedConverter(new PdfTools());
        var doc = new HtmlToPdfDocument()
        {
            GlobalSettings = {
                ColorMode = ColorMode.Color,
                Orientation = Orientation.Landscape,
                PaperSize = PaperKind.A4,
                Margins = new MarginSettings { Top = 10, Bottom = 10, Left = 15, Right = 15 }
            },
            Objects = {
                new ObjectSettings() {
                    HtmlContent = "<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>",
                    WebSettings = { DefaultEncoding = "utf-8" }
                }
            }
        };
        byte[] pdf = converter.Convert(doc);
        File.WriteAllBytes("custom.pdf", pdf);
    }
}
Imports DinkToPdf
Imports DinkToPdf.Contracts
Imports System.IO

Module Program
    Sub Main()
        Dim converter = New SynchronizedConverter(New PdfTools())
        Dim doc = New HtmlToPdfDocument() With {
            .GlobalSettings = New GlobalSettings() With {
                .ColorMode = ColorMode.Color,
                .Orientation = Orientation.Landscape,
                .PaperSize = PaperKind.A4,
                .Margins = New MarginSettings() With {
                    .Top = 10,
                    .Bottom = 10,
                    .Left = 15,
                    .Right = 15
                }
            },
            .Objects = {
                New ObjectSettings() With {
                    .HtmlContent = "<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>",
                    .WebSettings = New WebSettings() With {
                        .DefaultEncoding = "utf-8"
                    }
                }
            }
        }
        Dim pdf As Byte() = converter.Convert(doc)
        File.WriteAllBytes("custom.pdf", pdf)
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;
        renderer.RenderingOptions.MarginLeft = 15;
        renderer.RenderingOptions.MarginRight = 15;

        var pdf = renderer.RenderHtmlAsPdf("<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>");
        pdf.SaveAs("custom.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
        renderer.RenderingOptions.MarginTop = 10;
        renderer.RenderingOptions.MarginBottom = 10;
        renderer.RenderingOptions.MarginLeft = 15;
        renderer.RenderingOptions.MarginRight = 15;

        var pdf = renderer.RenderHtmlAsPdf("<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>");
        pdf.SaveAs("custom.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape
        renderer.RenderingOptions.MarginTop = 10
        renderer.RenderingOptions.MarginBottom = 10
        renderer.RenderingOptions.MarginLeft = 15
        renderer.RenderingOptions.MarginRight = 15

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Custom PDF</h1><p>Landscape orientation with custom margins.</p>")
        pdf.SaveAs("custom.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF'nin RenderingOptions, hem GlobalSettings hem de MarginSettings yerine birleştirilmiş, akıcı bir API sunar. Daha fazla yapılandırma seçeneği için işleme seçenekleri dokümanına bakın.

Kritik Geçiş Notları

Yerel İkili Dosyaları Kaldır

En önemli temizlik adımı, wkhtmltopdf yerel ikili dosyalarını kaldırmaktır. IronPDF'nin yerel bağımlılıkları yoktur:

# Delete native binaries
rm libwkhtmltox.* 2>/dev/null
# Delete native binaries
rm libwkhtmltox.* 2>/dev/null
SHELL

Singleton Gerekli Değil

DinkToPdf'in SynchronizedConverter'si, çökme durumlarını önlemek için bir singleton olarak kaydedilmeliydi. IronPDF'nin ChromePdfRenderer'si, her türlü DI yaşam döngüsüyle thread-safe'dir:

//DinkToPdf- MUST be singleton
services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));

//IronPDF- any lifetime works
services.AddScoped<ChromePdfRenderer>();
// Or just create inline:
var renderer = new ChromePdfRenderer();
//DinkToPdf- MUST be singleton
services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));

//IronPDF- any lifetime works
services.AddScoped<ChromePdfRenderer>();
// Or just create inline:
var renderer = new ChromePdfRenderer();
' DinkToPdf- MUST be singleton
services.AddSingleton(GetType(IConverter), New SynchronizedConverter(New PdfTools()))

' IronPDF- any lifetime works
services.AddScoped(Of ChromePdfRenderer)()
' Or just create inline:
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Daha Zengin Dönüş Türü

DinkToPdf byte[] döndürür. IronPDF, manipülasyon yetenekleriyle birlikte PdfDocument döndürür:

//DinkToPdfreturns byte[]
byte[] pdf = converter.Convert(doc);
File.WriteAllBytes("output.pdf", pdf);
return File(pdf, "application/pdf");

//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
return File(pdf.BinaryData, "application/pdf");
//DinkToPdfreturns byte[]
byte[] pdf = converter.Convert(doc);
File.WriteAllBytes("output.pdf", pdf);
return File(pdf, "application/pdf");

//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
return File(pdf.BinaryData, "application/pdf");
' DinkToPdf returns byte()
Dim pdf As Byte() = converter.Convert(doc)
File.WriteAllBytes("output.pdf", pdf)
Return File(pdf, "application/pdf")

' IronPDF returns PdfDocument
Dim pdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDocument.SaveAs("output.pdf")
Return File(pdfDocument.BinaryData, "application/pdf")
$vbLabelText   $csharpLabel

TamCSS3Desteği

DinkToPdf'de başarısız olan modern düzenler, IronPDF'de mükemmel çalışır:

//DinkToPdf- doesn't work (wkhtmltopdf uses 2015 WebKit)
var html = "<div style='display: flex;'>...</div>";  // Broken!

//IronPDF- full support (modern Chromium)
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";
var pdf = renderer.RenderHtmlAsPdf(html);  // Works!
//DinkToPdf- doesn't work (wkhtmltopdf uses 2015 WebKit)
var html = "<div style='display: flex;'>...</div>";  // Broken!

//IronPDF- full support (modern Chromium)
var html = @"
    <div style='display: flex; justify-content: space-between;'>
        <div>Left</div>
        <div>Right</div>
    </div>";
var pdf = renderer.RenderHtmlAsPdf(html);  // Works!
' DinkToPdf- doesn't work (wkhtmltopdf uses 2015 WebKit)
Dim html As String = "<div style='display: flex;'>...</div>"  ' Broken!

' IronPDF- full support (modern Chromium)
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!
$vbLabelText   $csharpLabel

Göç Sonrası Kontrol Listesi

Kod göçünü tamamladıktan sonra, aşağıdakileri doğrulayın:

  • PDF üretiminin doğru çalıştığını doğrulamak için tüm birim testlerini çalıştırın
  • Çoklu iş parçacıklı senaryoları test edin (bunlarDinkToPdfile çöktü)
  • PDF çıktı kalitesini karşılaştırın (IronPDF'nin Chromium'u daha iyi işler)
  • CSS işleme doğrulayın (Flexbox/Grid şimdi çalışır) -JavaScriptçalıştırmayı test edin (IronPDF ile güvenilir)
  • wkhtmltopdf kurulumunu kaldırmak için CI/CD boru hatlarını güncelleyin
  • Güvenlik taramasının geçtiğini doğrulayın (CVE-2022-35583 bayrakları artık yok)
  • Docker/ dağıtım betiklerinden yerel ikili dağıtımını kaldırın

PDF Altyapınızı Geleceğe Hazırlama

.NET 10 ufukta ve C# 14 yeni dil özelliklerini tanıtırken, aktif olarak bakım yapılan bir PDF kütüphanesi seçmek uzun vadeli uyumluluğu sağlar. IronPDF'nin modern Chromium motoru düzenli güncellemeler alırken, DinkToPdf'in terk edilmiş wkhtmltopdf'u 2015 yeteneklerinde donmuş halde kalır - bu, web standartları 2025 ve 2026 boyunca evrilirken büyüyen bir fark olacaktır.

Ek Kaynaklar


DinkToPdf'den IronPDF'ye geçmek, kritik güvenlik açıklarını (CVE-2022-35583), iş parçacığı emniyeti hatalarını, yerel ikili dağıtım karmaşıklığını ve eski CSS işleme sorunlarını ortadan kaldırır. Modern bir Chromium motoruna geçiş, tamCSS3desteği, güvenilirJavaScriptçalıştırma ve aktif olarak bakım yapılan bir kütüphanenin sağladığı huzuru sunar.

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