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

PDFBolt'tan IronPDF'e C# ile Nasıl Geçilir

PDFBolt'tan IronPDF'e geçiş, .NET PDF iş akışınızı yalnızca bulut odaklı bir SaaS REST hizmetinden, yerel belge işleme ve belge başına kota olmadan özelleştirilmiş bir kütüphaneye taşır. Bu kılavuz, ağ bağımlılıklarını, aylık kullanım sınırlarını ve harici veri iletimini ortadan kaldırmak için adım adım bir geçiş yolu sağlar, PDFBolt'un sağlamadığı PDF manipülasyon özelliklerini ekler.

PDFBolt'ten IronPDF'e Neden Geçmeli

Sadece Bulut Problemi

PDFBolt, REST API olarak ortaya çıkan yalnızca bulut tabanlı bir SaaS platformudur; .NET için resmi bir SDK ve PDFBolt NuGet paketi yoktur. Entegrasyon https://api.pdfbolt.com/v1/direct karşı HttpClient ile el ile yapılır. Hızlı prototipler için uygun olmakla birlikte, bu mimari üretim uygulamaları için zorluklar yaratır:

  1. Yalnızca Bulut İşleme: Her belge PDFBolt'un sunucularından geçiyor — özelleştirilmiş bir seçenek yok, bu da veri akışı üzerinde daha fazla kontrol sağlamak isteyen ekipler için engel olabilir.

  2. Veri Gizliliği Düşüncesi: Hassas belgeler (sözleşmeler, tıbbi kayıtlar, finansal veriler) harici olarak iletilmektedir. Düzenlenmiş verilerle çalışan şirketlerin meşru gözden geçirme kaygıları olacaktır.

  3. Kullanım Sınırları: Ücretsiz katman ayda 100 belge ile sınırlıdır, dakika başına 20 istek, 1 eşzamanlı istek, bu üretim iş yükleri için yeterli olmayabilir. Ücretli katmanlar (pdfbolt.com/pricing başına) $19/ay'dan $249/ay'a kadar genişler.

  4. Ağ Bağımlılığı: İnternet kesintileri veya PDFBolt'un çökmesi, PDF üretiminizi tamamen durdurur.

  5. Gecikme: Yerel işleme ile karşılaştırıldığında, ağ gidiş-dönüşü her dönüşümü saniyelerle uzatır.

  6. Uyumluluk İncelemesi: GDPR, HIPAA ve SOC2 denetimleri genellikle harici belge işleme durumunda ek belgeler gerektirir.

  7. API Anahtar Güvenliği: Sızdırılan API anahtarları, hesabınıza faturalanan yetkisiz kullanımla sonuçlanabilir.

  8. Tedarikçi Kilitlemesi:PDFBoltkoşullarını değiştirirse veya kapanırsa uygulamanız çalışmayı durdurur.

PDFBoltvs IronPDF Karşılaştırması

Endişe PDFBolt IronPDF
Veri Konumu Harici sunucular Sadece sizin sunucularınız
Kullanım Sınırları 100 ücretsiz/ay, ardından kademeli abonelikler Unlimited
İnternet Gerekli Evet, her zaman Hayır
Gecikme Ağ turu Yerel
Uyumluluk Karmaşık (harici işleme) Basit (yerel işleme)
Maliyet Modeli Aylık abonelik katmanları ($19–$249/ay) Tek seferlik veya yıllık
Çevrimdışı Operasyon İmkansız Tam destekli
API Anahtar Riskleri Sızdırılmış = fatura edilmiş Lisans anahtarı, faturalama riski yok

IronPDF, belge işlemenin yerel kalmasını sağlayarak, harici bir bulut hizmetine olan bağımlılığı ortadan kaldırarak, modern .NET üzerinde kendine yeten bir temel sağlar.


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

PDFBolt'un resmi bir .NET SDK'sı ve PDFBolt NuGet paketi yoktur, bu yüzden kaldırılacak bir şey yok.PDFBolttarafındaki temizleme, el ile yapılmış olan HttpClient sarmalayıcı ve istek/yanıt DTO'larını silmektir. Ardından IronPDF'i yükleyin:

# Install IronPDF(replaces the hand-rolled HttpClient wrapper)
dotnet add package IronPdf
# Install IronPDF(replaces the hand-rolled HttpClient wrapper)
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

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

PDFBoltKullanımını Belirleyin

# Find allPDFBoltREST calls
grep -rE "api\.pdfbolt\.com|API-KEY|/v1/direct" --include="*.cs" .

# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
# Find allPDFBoltREST calls
grep -rE "api\.pdfbolt\.com|API-KEY|/v1/direct" --include="*.cs" .

# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
SHELL

Tam API Referansı

Temel Kavram Eşleştirmeleri

PDFBolt (REST) IronPDF
HttpClient + API-KEY başlığı new ChromePdfRenderer()
JSON istek gövdesi renderer.RenderingOptions
POST https://api.pdfbolt.com/v1/direct renderer.RenderHtmlAsPdf(...) / RenderUrlAsPdf(...)
Yanıt byte[] PdfDocument

Dönüşüm Yöntem Eşlemeleri

PDFBolt (REST) IronPDF
POST /v1/direct ile { "html": <base64> } renderer.RenderHtmlAsPdf(html)
POST /v1/direct ile { "url": "..." } renderer.RenderUrlAsPdf(url)

Çıktı Yöntem Eşlemeleri

PDFBolt (REST) IronPDF
await response.Content.ReadAsByteArrayAsync() ardından File.WriteAllBytes pdf.SaveAs(path)
await response.Content.ReadAsByteArrayAsync() pdf.BinaryData

Sayfa Yapılandırma Eşlemeleri

PDFBolt JSON IronPDF
"format": "A4" renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
"margin": { "top": "20mm" } renderer.RenderingOptions.MarginTop = 20
"margin": { "bottom": "20mm" } renderer.RenderingOptions.MarginBottom = 20
"margin": { "left": "15mm" } renderer.RenderingOptions.MarginLeft = 15
"margin": { "right": "15mm" } renderer.RenderingOptions.MarginRight = 15

Başlık/Altbilgi Yer Tutucu Eşlemeleri

PDFBolt (base64 ile kodlanmış headerTemplate / footerTemplate içinde) IronPDF (HtmlFragment token)
<span class="pageNumber"></span> {page}
<span class="totalPages"></span> {total-pages}
<span class="date"></span> {date}
<span class="title"></span> {html-title}

Kod Göç Örnekleri

Örnek 1: Temel HTML'den PDF'ye

Önce (PDFBolt — HttpClient üzerinden REST):

// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/quick-start-guide/csharp
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var payload = JsonSerializer.Serialize(new
        {
            html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html))
        });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("output.pdf", pdfBytes);
    }
}
// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/quick-start-guide/csharp
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var payload = JsonSerializer.Serialize(new
        {
            html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html))
        });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("output.pdf", pdfBytes);
    }
}
Imports System
Imports System.IO
Imports System.Net.Http
Imports System.Text
Imports System.Text.Json
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim payload As String = JsonSerializer.Serialize(New With {
            .html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html))
        })

        Using http As New HttpClient()
            http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY")
            Using content As New StringContent(payload, Encoding.UTF8, "application/json")
                Using response As HttpResponseMessage = Await http.PostAsync("https://api.pdfbolt.com/v1/direct", content)
                    response.EnsureSuccessStatusCode()

                    Dim pdfBytes As Byte() = Await response.Content.ReadAsByteArrayAsync()
                    Await File.WriteAllBytesAsync("output.pdf", pdfBytes)
                End Using
            End Using
        End Using
    End Function
End Module
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var 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.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Yapısal fark, entegrasyon modelindedir. PDFBolt, HTML'yi base64 ile kodlamanızı, bir JSON yükü oluşturmanızı, API-KEY başlığını ayarlamanızı, POST ile https://api.pdfbolt.com/v1/direct bağlamanızı, yanıtı beklemenizi ve dönen baytları diske kendiniz yazmanızı gerektirir.

IronPDF'nin ChromePdfRenderer.RenderHtmlAsPdf() bir yerleşik SaveAs() yöntemi olan PdfDocument nesnesi döndürür. Nesneye yönelik model, kaydetmeden önce PDF'yi manipüle etmenizi sağlar (filigran ekle, belgeleri birleştir, güvenlik uygula). Mevcut kodla uyumluluk için ham baytlara ihtiyacınız varsa, pdf.BinaryData kullanın. HTML'den PDF'ye belgelemeyi ek işleme seçenekleri için inceleyin.

Örnek 2: URL'den PDF'ye Dönüştürme

Önce (PDFBolt — HttpClient üzerinden REST):

// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/quick-start-guide/csharp
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var payload = JsonSerializer.Serialize(new { url = "https://www.example.com" });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("webpage.pdf", pdfBytes);
    }
}
// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/quick-start-guide/csharp
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var payload = JsonSerializer.Serialize(new { url = "https://www.example.com" });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("webpage.pdf", pdfBytes);
    }
}
Imports System.IO
Imports System.Net.Http
Imports System.Text
Imports System.Text.Json
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim payload = JsonSerializer.Serialize(New With {.url = "https://www.example.com"})

        Using http As New HttpClient()
            http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY")
            Using content As New StringContent(payload, Encoding.UTF8, "application/json")
                Using response As HttpResponseMessage = Await http.PostAsync("https://api.pdfbolt.com/v1/direct", content)
                    response.EnsureSuccessStatusCode()

                    Dim pdfBytes As Byte() = Await response.Content.ReadAsByteArrayAsync()
                    Await File.WriteAllBytesAsync("webpage.pdf", pdfBytes)
                End Using
            End Using
        End Using
    End Function
End Module
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

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;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFBolt tarafında, URL dönüşümü hala tam bir REST yoluyla yapılmalıdır: JSON gövdesini oluşturun, API anahtar başlığını ayarlayın, POST'u bekleyin ve yanıt baytlarını yazın. Zaten bir genel URL'ye işaret ettiğiniz halde, getirme ve render işlemleri her iki işlem de PDFBolt'un sunucularında gerçekleşir.

IronPDF'nin RenderUrlAsPdf() bir yerleşik SaveAs() yöntemi olan PdfDocument döndürür. Ana avantaj, IronPDF'in URL alma ve PDF render işlemlerini yerel olarak gerçekleştirmesidir — belge verileri altyapınızdan çıkmaz. URL'den PDF'ye dönüşüm hakkında daha fazla bilgi edinin.

Örnek 3: Özel Sayfa Ayarları ile HTML Dosyası

Önce (PDFBolt — HttpClient üzerinden REST):

// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/parameters
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var html = await File.ReadAllTextAsync("input.html");
        var payload = JsonSerializer.Serialize(new
        {
            html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html)),
            format = "A4",
            margin = new { top = "20mm", bottom = "20mm" },
            printBackground = true
        });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("output.pdf", pdfBytes);
    }
}
// REST API — no official .NET SDK; integrate via HttpClient.
// Docs: https://pdfbolt.com/docs/parameters
using System;
using System.IO;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var html = await File.ReadAllTextAsync("input.html");
        var payload = JsonSerializer.Serialize(new
        {
            html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html)),
            format = "A4",
            margin = new { top = "20mm", bottom = "20mm" },
            printBackground = true
        });

        using var http = new HttpClient();
        http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
        using var content = new StringContent(payload, Encoding.UTF8, "application/json");
        using var response = await http.PostAsync("https://api.pdfbolt.com/v1/direct", content);
        response.EnsureSuccessStatusCode();

        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        await File.WriteAllBytesAsync("output.pdf", pdfBytes);
    }
}
Imports System
Imports System.IO
Imports System.Net.Http
Imports System.Text
Imports System.Text.Json
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim html = Await File.ReadAllTextAsync("input.html")
        Dim payload = JsonSerializer.Serialize(New With {
            .html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html)),
            .format = "A4",
            .margin = New With {.top = "20mm", .bottom = "20mm"},
            .printBackground = True
        })

        Using http As New HttpClient()
            http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY")
            Using content As New StringContent(payload, Encoding.UTF8, "application/json")
                Using response As HttpResponseMessage = Await http.PostAsync("https://api.pdfbolt.com/v1/direct", content)
                    response.EnsureSuccessStatusCode()

                    Dim pdfBytes = Await response.Content.ReadAsByteArrayAsync()
                    Await File.WriteAllBytesAsync("output.pdf", pdfBytes)
                End Using
            End Using
        End Using
    End Function
End Module
$vbLabelText   $csharpLabel

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var html = File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var html = File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        Dim html = File.ReadAllText("input.html")
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Bu örnek sayfa yapılandırma eşlemesini gösterir. PDFBolt, CSS tarzı dize ("20mm") değerlerine sahip, yuvalanmış bir margin nesnesi ile üst düzey format kabul eder. IronPDF, derleyicide kuvvetli yazılmış özellikleri olan bir RenderingOptions nesnesi kullanır.

Temel eşlemeler:

  • "format": "A4"PdfPaperSize.A4 (kuvvetli yazılmış enum)
  • "margin": { "top": "20mm" }RenderingOptions.MarginTop = 20 (sayısal mm)

IronPDF kenar boşlukları her zaman sayısal milimetrelerdir, bu yüzdenPDFBoltCSS birim dizesi "20mm" doğrudan eşleştirilir. IronPdf.Rendering isim uzayı, PdfPaperSize enum'una erişim için gereklidir. Ek sayfa yapılandırması için, rendering seçenekleri dokümanına bakın.


Kritik Taşıma Notları

Dönüş Türü Değişikliği

PDFBolt'un /v1/direct uç noktası, ham PDF'yi HTTP yanıt gövdesi olarak döndürür;IronPDF bir PdfDocument döndürür:

//PDFBoltpattern:
var pdfBytes = await response.Content.ReadAsByteArrayAsync();
await File.WriteAllBytesAsync("output.pdf", pdfBytes);

//IronPDF pattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");

// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
//PDFBoltpattern:
var pdfBytes = await response.Content.ReadAsByteArrayAsync();
await File.WriteAllBytesAsync("output.pdf", pdfBytes);

//IronPDF pattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");

// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
Imports System.IO
Imports System.Net.Http

'PDFBolt pattern:
Dim pdfBytes = Await response.Content.ReadAsByteArrayAsync()
Await File.WriteAllBytesAsync("output.pdf", pdfBytes)

'IronPDF pattern:
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")

' Or if you need bytes:
Dim pdfBytes As Byte() = renderer.RenderHtmlAsPdf(html).BinaryData
$vbLabelText   $csharpLabel

Entegrasyon Modeli Değişikliği

Entegrasyon şekli, REST istemcisinden işlem içi kütüphaneye değişiyor:

// PDFBolt
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
// ... build JSON, POST to https://api.pdfbolt.com/v1/direct

// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
using var http = new HttpClient();
http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY");
// ... build JSON, POST to https://api.pdfbolt.com/v1/direct

// IronPDF
var renderer = new ChromePdfRenderer();
Imports System.Net.Http

' PDFBolt
Using http As New HttpClient()
    http.DefaultRequestHeaders.Add("API-KEY", "YOUR-PDFBOLT-API-KEY")
    ' ... build JSON, POST to https://api.pdfbolt.com/v1/direct
End Using

' IronPDF
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Konfigürasyon Deseni Değişimi

PDFBolt yapılandırması, istek gövdesi üzerindeki JSON alanlarından ibarettir;IronPDFRenderingOptions kullanır:

// PDFBolt: JSON request fields
new { format = "A4", margin = new { top = "20mm" } }

// IronPDF: RenderingOptions properties
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
// PDFBolt: JSON request fields
new { format = "A4", margin = new { top = "20mm" } }

// IronPDF: RenderingOptions properties
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
' PDFBolt: JSON request fields
New With {Key .format = "A4", Key .margin = New With {Key .top = "20mm"}}

' IronPDF: RenderingOptions properties
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
$vbLabelText   $csharpLabel

API Anahtarının Kaldırılması

PDFBolt, her istekte bir API-KEY başlığı gerektirir; IronPDF, tek seferlik bir lisans anahtarı kullanır:

// PDFBolt: API key per HTTP call (security risk if leaked)
http.DefaultRequestHeaders.Add("API-KEY", config["PDFBolt:ApiKey"]);

// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// PDFBolt: API key per HTTP call (security risk if leaked)
http.DefaultRequestHeaders.Add("API-KEY", config["PDFBolt:ApiKey"]);

// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
' PDFBolt: API key per HTTP call (security risk if leaked)
http.DefaultRequestHeaders.Add("API-KEY", config("PDFBolt:ApiKey"))

' IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Ağ Hatası İşlemenin Kaldırılması

Yerel işleme, ağ hatalarıyla uğraşmayı gerektirmez:

// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)

// IronPDF: Remove network-specific catches entirely
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)

// IronPDF: Remove network-specific catches entirely
$vbLabelText   $csharpLabel

Kullanılabilir Yeni Yetenekler

IronPDF'e geçtikten sonra, PDFBolt'un sağlamadığı yetenekler kazanırsınız:

// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);

// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");

// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";

// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();

// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);

// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");

// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";

// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();

// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
' PDF Merging (not available in PDFBolt)
Dim merged = PdfDocument.Merge(pdf1, pdf2)

' Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>")

' Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret"

' Text Extraction (not available in PDFBolt)
Dim text As String = pdf.ExtractAllText()

' PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png")
$vbLabelText   $csharpLabel

Hata Ayıklama

Sorun 1: NuGet'te PDFBolt Paketi Yok

Problem: IronPDF'de using PDFBolt; / new HtmlToPdfConverter() arayışı.

Çözüm: PDFBolt'un .NET SDK'sı yok — entegrasyonu, https://api.pdfbolt.com/v1/direct ile HttpClient. IronPDF, bu sarmalayıcıyı tamamen ChromePdfRenderer ile değiştirir:

// IronPDF
var renderer = new ChromePdfRenderer();
// IronPDF
var renderer = new ChromePdfRenderer();
' IronPDF
Dim renderer As New ChromePdfRenderer()
$vbLabelText   $csharpLabel

Sorun 2: ConvertHtmlString Nerede Gitti?

Problem: Bir ConvertHtmlString(html) yöntemine sahip, firma içiPDFBoltsarmalayıcısını taşımak.

Çözüm: RenderHtmlAsPdf() kullanın:

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
$vbLabelText   $csharpLabel

Sorun 3: ConvertUrl Nerede Gitti?

Problem: Bir ConvertUrl(url) yöntemine sahip, firma içiPDFBoltsarmalayıcısını taşımak.

Çözüm: RenderUrlAsPdf() kullanın:

// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
$vbLabelText   $csharpLabel

Sorun 4: format JSON Alanı → Enum

Problem: PDFBolt'un "format": "A4" JSON alanını çevirmek.

Çözüm: IronPdf.Rendering'dan PdfPaperSize kullanın:

// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
Imports IronPdf.Rendering

renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
$vbLabelText   $csharpLabel

Sorun 5: İlk PDF Oluşturma Yavaş

Problem: İlk oluşturma beklenenden uzun sürüyor.

Çözüm: Chromium motoru ilk kullanımla başlatılır. Gerekirse ön hazırlık yapın:

// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
' Warm up during application startup
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf("<html><body></body></html>")
$vbLabelText   $csharpLabel

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Kod tabanındaki tümPDFBoltREST çağrılarını envanter edin (api.pdfbolt.com)
  • Mevcut JSON istek alanlarını belgeleyin (format, margin, printBackground, headerTemplate vb.)
  • Kaldırmak için API anahtar yönetim kodunu belirleyin
  • Silinecek 429 / kota tekrar işleme listesini yapın -IronPDF lisans anahtarını edinin

Paket Değişiklikleri

  • El ile yapılmışPDFBoltHttpClient sarmalayıcıyı ve DTO'ları silin (kaldırılacak NuGet paketi yok)
  • IronPdf NuGet paketini yükleyin: dotnet add package IronPdf
  • using IronPdf; isim uzayını ekleyin
  • Kağıt boyutu enumları için using IronPdf.Rendering; ekleyin

Kod Değişiklikleri

Başlangıçta lisans anahtarı yapılandırmasını ekleyin

  • HttpClient + API-KEY entegrasyonunu ChromePdfRenderer ile değiştirin
  • POST /v1/direct'i RenderHtmlAsPdf() / RenderUrlAsPdf() ile değiştirin
  • await response.Content.ReadAsByteArrayAsync() + File.WriteAllBytes()'i pdf.SaveAs() ile değiştirin (veya baytlar hala gerekiyorsa pdf.BinaryData)
  • "format" / "margin" JSON alanlarını RenderingOptions.PaperSize / RenderingOptions.MarginTop vb. ile eşleştirin.
  • API anahtar yönetim kodunu çıkarın
  • 429 / hız limiti işleme özelliğini kaldırın
  • Ağ hatası işleme kodunu çıkarın

Geçiş Sonrası

  • Yapılandırma dosyalarından API anahtarını silin
  • Gizli yöneticilerden API anahtarını çıkarın
  • PDF çıktısını karşılaştıran tüm testleri çalıştırın
  • Sayfa boyutlarının ve kenar boşluklarının doğru şekilde çıktığını doğrulayın
  • Yeni özellikler eklemeyi düşünün (filigranlar, güvenlik, birleştirme)

Lütfen dikkate alınPDFBolt ilgili sahibinin tescilli ticari markasıdır. Bu site,PDFBoltile bağlantılı,PDFBolttarafından onaylanan veya desteklenen bir site değildir. 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