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

BitMiracle Docotic PDF'ten IronPDF'e C# ile Nasıl Geçilir

BitMiracle Docotic PDF, %100 yönetilen kod mimarisi ve geniş programatik PDF işleme yetenekleriyle tanınan bir .NET PDF kütüphanesidir. Ancak, HTML'den PDF'ye dönüşüm, düzen özellikleri ve diğer işlevsellik için ayrı paketler gerektiren modüler ek yapısı, proje yönetimi ve lisanslamada karmaşıklık ekler. Bu kapsamlı kılavuz, BitMiracle Docotic PDF'den IronPDF'ye adım adım bir geçiş yolunu sağlıyor—yerleşik Chromium tabanlı HTML render etme ve tüm özelliklerin tek bir NuGet paketinde bulunduğu birleşik bir .NET PDF kütüphanesi.

Neden BitMiracle Docotic PDF'den IronPDF'ye Geçmelisiniz?

BitMiracle Docotic PDF sağlam PDF işleme özellikleri sunsa da, daha akıcı bir mimariye sahip alternatifler aramak için geliştirme ekiplerini yönlendiren çeşitli faktörler vardır.

Paket Mimari Karşılaştırması

BitMiracle Docotic PDF, tam işlevsellik için birden fazla paket gerektiren modüler bir ek yaklaşımı kullanır:

Bağlam BitMiracle Docotic PDF IronPDF
HTML'den PDF'ye Ayrı eklenti gerektirir (HtmlToPdf) Yerleşik çekirdek özellik
Paket Yapısı Çekirdek + birden çok eklenti Tekar NuGet paketi
Lisans Modeli Ek başına lisanslama Tüm özellikler dahil
API Karmaşıklığı Her eklenti için ayrı ad alanları Birleşik API
HTML Motoru Chromium (ek aracılığıyla) Chromium (yerleşik)
Topluluk Boyutu Daha küçük Daha büyük, daha fazla kaynak
Dokümantasyon Teknik referans Kapsamlı eğitimler

Özellik Eşitliği

Her iki kütüphane de kapsamlı PDF işlevselliğini destekler:

Özellik BitMiracle Docotic PDF IronPDF
Sıfırdan PDF oluştur
HTML'den PDF'ye ✅ (eklenti gerekli) ✅ (yerleşik)
URL'den PDF'ye ✅ (eklenti gerekli) ✅ (yerleşik)
PDF manipülasyonu
Metin çıkarmak
Birleştirme/Ayırma
Dijital imzalar
Şifreleme
Form doldurma
PDF/A uyumluluğu

Yaklaşımda Kilit Farklar

BitMiracle Docotic PDF, tuvale dayalı çizim ve koordinat konumlandırmasını (canvas.DrawString(x, y, text)) kullanırken,IronPDFmizanpaj ve konumlandırma için HTML/CSS'yi kullanır. Bu, web teknolojilerine aşina olan geliştiriciler için içerik oluşturmayı basitleştiren bir paradigma değişikliği temsil eder.

Ö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)

BitMiracle Docotic PDFKullanımını Denetle

Tüm Docotic.Pdf referanslarını tanımlamak için çözüm dizininizde bu komutları çalıştırın:

# Find all Docotic.Pdf usages in your codebase
grep -r "using BitMiracle.Docotic" --include="*.cs" .
grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" .

# Find NuGet package references
grep -r "Docotic.Pdf" --include="*.csproj" .
# Find all Docotic.Pdf usages in your codebase
grep -r "using BitMiracle.Docotic" --include="*.cs" .
grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" .

# Find NuGet package references
grep -r "Docotic.Pdf" --include="*.csproj" .
SHELL

Beklenen Büyük Değişiklikler

Değişiklik BitMiracle Docotic PDF IronPDF Etkisi
HTML işleme HtmlToPdf eklentisi gerektirir Yerleşik Eklenti paketini kaldır
Sayfa indeksleme 0 tabanlı (Pages[0]) 0 tabanlı (Pages[0]) Değişiklik gerekmez
Koordinat sistemi Sol alt köşeden başlar HTML/CSS akışı Konumlandırma için CSS kullan
Kanvas çizimi PdfCanvas.DrawText() HTML işaretleme Paradigma değişimi
Metin çıkarma page.GetText() pdf.ExtractAllText() Yöntem adı değişikliği
Belge yükleme new PdfDocument(path) PdfDocument.FromFile(path) Yapıcı → statik yöntem
Kaydetme document.Save(path) pdf.SaveAs(path) Yöntem adı değişikliği
Atma IDisposable deseni Gerekli değil Daha basit kaynak yönetimi

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

Adım 1: NuGet Paketlerini Güncelleyin

BitMiracle Docotic PDF paketlerini kaldırın veIronPDFkurun:

# Remove Docotic.Pdf packages
dotnet remove package BitMiracle.Docotic.Pdf
dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf
dotnet remove package BitMiracle.Docotic.Pdf.Layout

# Install IronPDF
dotnet add package IronPdf
# Remove Docotic.Pdf packages
dotnet remove package BitMiracle.Docotic.Pdf
dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf
dotnet remove package BitMiracle.Docotic.Pdf.Layout

# Install IronPDF
dotnet add package IronPdf
SHELL

2. Adım: Namespace Referanslarını Güncelleyin

BitMiracle Docotic PDF ad alanlarınıIronPDFile değiştirin:

// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
using BitMiracle.Docotic.Pdf.HtmlToPdf;

// Add this
using IronPdf;
// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
using BitMiracle.Docotic.Pdf.HtmlToPdf;

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

3. Adım: Lisansı Yapılandır

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

Belge İşlemleri

Görev BitMiracle Docotic PDF IronPDF
Boş belge oluştur new PdfDocument() new PdfDocument()
Dosyadan yükle new PdfDocument(path) PdfDocument.FromFile(path)
Akıştan yükle PdfDocument.Load(stream) PdfDocument.FromStream(stream)
Baytlardan yükle PdfDocument.Load(bytes) PdfDocument.FromBinaryData(bytes)
Dosya olarak kaydet document.Save(path) pdf.SaveAs(path)
Sayfa sayısını al document.PageCount pdf.PageCount
Kapat/El dışı bırak document.Dispose() Gerekli değil

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

Görev BitMiracle Docotic PDF (HtmlToPdf Eklentisi) IronPDF
HTML string'i PDF'ye çevirme HtmlConverter.Create(html).ToPdf() renderer.RenderHtmlAsPdf(html)
HTML dosyasını PDF'ye dönüştür HtmlConverter.Create(new Uri(filePath)).ToPdf() renderer.RenderHtmlFileAsPdf(path)
URL'den PDF'ye HtmlConverter.Create(new Uri(url)).ToPdf() renderer.RenderUrlAsPdf(url)
Sayfa boyutunu ayarla options.PageSize = PageSize.A4 renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Kenar boşluklarını ayarla options.PageMargins = new Margins(20) renderer.RenderingOptions.MarginTop = 20

Birleştir ve Bölme İşlemleri

Görev BitMiracle Docotic PDF IronPDF
Belgeleri birleştirme doc1.Append(doc2) PdfDocument.Merge(pdf1, pdf2)
Belgeyi ayırma document.CopyPage(index) yeni dökümana pdf.CopyPages(start, end)

Kod Geçiş Örnekleri

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

En yaygın işlem, IronPDF'nin sağladığı önemli basitleşmeyi gösterir.

BitMiracle Docotic PDF Uygulaması:

// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument())
        {
            string html = "<html><body><h1>Hello World</h1><p>This isHTML'den PDF'yeconversion.</p></body></html>";

            pdf.CreatePage(html);
            pdf.Save("output.pdf");
        }

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument())
        {
            string html = "<html><body><h1>Hello World</h1><p>This isHTML'den PDF'yeconversion.</p></body></html>";

            pdf.CreatePage(html);
            pdf.Save("output.pdf");
        }

        Console.WriteLine("PDF created successfully");
    }
}
Imports BitMiracle.Docotic.Pdf
Imports System

Class Program
    Shared Sub Main()
        Using pdf As New PdfDocument()
            Dim html As String = "<html><body><h1>Hello World</h1><p>This is HTML'den PDF'ye conversion.</p></body></html>"

            pdf.CreatePage(html)
            pdf.Save("output.pdf")
        End Using

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

// 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><p>This isHTML'den PDF'yeconversion.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This isHTML'den PDF'yeconversion.</p></body></html>";

        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This isHTML'den PDF'yeconversion.</p></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")

        Console.WriteLine("PDF created successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF, using ifade gereksinimini ortadan kaldırır ve kendi Chromium tabanlı renderleme yeteneğini açıkça belirten özel bir ChromePdfRenderer sınıfı sağlar. Daha fazla HTML dönüştürme seçeneği için HTML'den PDF'ye belgelerine bakın.

Birden Fazla PDF'yi Birleştirme

BitMiracle Docotic PDF Uygulaması:

// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf1 = new PdfDocument("document1.pdf"))
        using (var pdf2 = new PdfDocument("document2.pdf"))
        {
            pdf1.Append(pdf2);
            pdf1.Save("merged.pdf");
        }

        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf1 = new PdfDocument("document1.pdf"))
        using (var pdf2 = new PdfDocument("document2.pdf"))
        {
            pdf1.Append(pdf2);
            pdf1.Save("merged.pdf");
        }

        Console.WriteLine("PDFs merged successfully");
    }
}
Imports BitMiracle.Docotic.Pdf
Imports System

Class Program
    Shared Sub Main()
        Using pdf1 As New PdfDocument("document1.pdf"), pdf2 As New PdfDocument("document2.pdf")
            pdf1.Append(pdf2)
            pdf1.Save("merged.pdf")
        End Using

        Console.WriteLine("PDFs merged successfully")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");

        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");

        Console.WriteLine("PDFs merged successfully");
    }
}
Imports IronPdf
Imports System
Imports System.Collections.Generic

Module Program
    Sub Main()
        Dim pdf1 As PdfDocument = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 As PdfDocument = PdfDocument.FromFile("document2.pdf")

        Dim merged As PdfDocument = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})
        merged.SaveAs("merged.pdf")

        Console.WriteLine("PDFs merged successfully")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF'nin statik Merge yöntemi, birden fazla belgeyi doğrudan kabul eder ve yinelemeli Append deseninden daha temiz bir API sunar. Daha fazla seçenek için PDF birleştirme belgelerine bakın.

Metin Çıkarma

BitMiracle Docotic PDF Uygulaması:

// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument("document.pdf"))
        {
            string allText = "";

            foreach (var page in pdf.Pages)
            {
                allText += page.GetText();
            }

            Console.WriteLine("Extracted text:");
            Console.WriteLine(allText);
        }
    }
}
// NuGet: Install-Package Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument("document.pdf"))
        {
            string allText = "";

            foreach (var page in pdf.Pages)
            {
                allText += page.GetText();
            }

            Console.WriteLine("Extracted text:");
            Console.WriteLine(allText);
        }
    }
}
Imports BitMiracle.Docotic.Pdf
Imports System

Module Program
    Sub Main()
        Using pdf As New PdfDocument("document.pdf")
            Dim allText As String = ""

            For Each page In pdf.Pages
                allText &= page.GetText()
            Next

            Console.WriteLine("Extracted text:")
            Console.WriteLine(allText)
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF Uygulaması:

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string allText = pdf.ExtractAllText();

        Console.WriteLine("Extracted text:");
        Console.WriteLine(allText);
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string allText = pdf.ExtractAllText();

        Console.WriteLine("Extracted text:");
        Console.WriteLine(allText);
    }
}
Imports IronPdf
Imports System

Class Program
    Shared Sub Main()
        Dim pdf = PdfDocument.FromFile("document.pdf")
        Dim allText As String = pdf.ExtractAllText()

        Console.WriteLine("Extracted text:")
        Console.WriteLine(allText)
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF, çoğul satırlı bir döngüden tek bir yöntem çağrısına indirerek metin çıkarmayı basitleştirir. Daha fazla çıkarma seçeneği için metin çıkarma belgelerine bakın.

Şifre Koruma ve Şifreleme

IronPDF Uygulaması:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>")

' Set security
pdf.SecuritySettings.UserPassword = "userPassword"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False

pdf.SaveAs("protected.pdf")
$vbLabelText   $csharpLabel

Kapsamlı güvenlik seçenekleri için şifreleme belgelerine bakın.

Üstbilgiler ve Altbilgiler

IronPDF Uygulaması:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px;'>
            Company Header - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
pdf.SaveAs("with_headers.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px;'>
            Company Header - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
pdf.SaveAs("with_headers.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='text-align:center; font-size:12px;'>
            Company Header - Confidential
        </div>",
    .DrawDividerLine = True,
    .MaxHeight = 30
}

renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .HtmlFragment = "
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    .DrawDividerLine = True,
    .MaxHeight = 25
}

Dim pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>")
pdf.SaveAs("with_headers.pdf")
$vbLabelText   $csharpLabel

IronPDF, dinamik sayfa numaralandırma için {page} ve {total-pages} gibi yer tutucu belirteçleri destekler. Daha fazla seçenek için bkz. başlıklar ve altbilgiler belgeleri.

Kritik Geçiş Notları

Kanvas'tan HTML'e Paradigma Değişimi

BitMiracle Docotic PDF'nin kanvas tabanlı çizim yaklaşımı, CSS konumlandırma ile HTML'e dönüştürülmelidir:

BitMiracle Docotic PDF Deseni:

var canvas = pdfPage.Canvas;
canvas.DrawString(50, 50, "Hello, World!");
var canvas = pdfPage.Canvas;
canvas.DrawString(50, 50, "Hello, World!");
Dim canvas = pdfPage.Canvas
canvas.DrawString(50, 50, "Hello, World!")
$vbLabelText   $csharpLabel

IronPDF Deseni:

var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
Dim html As String = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

Aynı Sayfa İndeksleme

Her iki kütüphane de 0 tabanlı indeksleme kullanır (Pages[0] ilk sayfadır)—sayfa erişim kodunda değişiklik gerekmez.

Atma Gerekmiyor

IronPDF, bellek yönetimi için using ifadelerine gerek duymaz, bu da kod yapısını basitleştirir:

//BitMiracle Docotic PDF- disposal required
using (var pdf = new PdfDocument("input.pdf"))
{
    // operations
}

//IronPDF- disposal optional
var pdf = PdfDocument.FromFile("input.pdf");
// operations - no using statement needed
//BitMiracle Docotic PDF- disposal required
using (var pdf = new PdfDocument("input.pdf"))
{
    // operations
}

//IronPDF- disposal optional
var pdf = PdfDocument.FromFile("input.pdf");
// operations - no using statement needed
Imports BitMiracle.Docotic.Pdf

' BitMiracle Docotic PDF - disposal required
Using pdf As New PdfDocument("input.pdf")
    ' operations
End Using

' IronPDF - disposal optional
Dim pdf = PdfDocument.FromFile("input.pdf")
' operations - no using statement needed
$vbLabelText   $csharpLabel

Async Destegi

BitMiracle Docotic PDF'nin HtmlToPdf eklentisi her yerde asenkron desenleri gerektirir.IronPDFhem senkron hem de asenkron yöntemleri destekler:

// Synchronous
var pdf = renderer.RenderHtmlAsPdf(html);

// Asynchronous
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
// Synchronous
var pdf = renderer.RenderHtmlAsPdf(html);

// Asynchronous
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
' Synchronous
Dim pdf = renderer.RenderHtmlAsPdf(html)

' Asynchronous
Dim pdf = Await renderer.RenderHtmlAsPdfAsync(html)
$vbLabelText   $csharpLabel

ASP.NET Core Entegrasyonu

IronPDF Deseni:

[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

        return File(pdf.Stream, "application/pdf", "report.pdf");
    }
}
[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

        return File(pdf.BinaryData, "application/pdf", "report.pdf");
    }

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

        return File(pdf.Stream, "application/pdf", "report.pdf");
    }
}
Imports Microsoft.AspNetCore.Mvc

<ApiController>
<Route("[controller]")>
Public Class PdfController
    Inherits ControllerBase

    <HttpGet("generate")>
    Public Function GeneratePdf() As IActionResult
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>")

        Return File(pdf.BinaryData, "application/pdf", "report.pdf")
    End Function

    <HttpGet("generate-async")>
    Public Async Function GeneratePdfAsync() As Task(Of IActionResult)
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = Await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>")

        Return File(pdf.Stream, "application/pdf", "report.pdf")
    End Function
End Class
$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
  • PDF çıktı kalitesini karşılaştırın (IronPDF'nin Chromium motoru biraz farklı render edebilir—genellikle daha iyi)
  • Metin çıkarma doğruluğunu doğrulayın
  • Form doldurma işlevselliğini test edin
  • Dijital imzaları geçerli olanları doğrula
  • Performans testi toplu işlemlerini
  • Tüm hedef ortamlarda test edin
  • CI/CD hatlarını güncelleyin
  • Docotic.Pdf lisans dosyalarını kaldır

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

.NET 10 ufukta ve C# 14 yeni dil özellikleri sunarken, birleşik mimariye sahip bir PDF kütüphanesi seçmek, bağımlılık yönetimini basitleştirir ve sürekli özellik erişimini sağlar. IronPDF'nin tek paket yaklaşımı, projeler 2025 ve 2026'ya doğru genişledikçe, eklenti sürüm uyumluluğunu takip etmenizi gerektirmez.

Ek Kaynaklar


BitMiracle Docotic PDF'den IronPDF'ye geçiş yapmak, birçok ek paket yönetiminin yol açtığı karmaşıklığı ortadan kaldırır ve Chromium tabanlı HTML işleme yeteneklerini sağlar. Tuval tabanlı çizimden HTML/CSS konumlandırmaya geçiş, çoğu .NET geliştiricisinin zaten sahip olduğu web geliştirme becerilerini kullanır ve daha sürdürülebilir PDF oluşturma kodu sağlar.

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