BitMiracle Docotic PDF'ten IronPDF'e C# ile Nasıl Geçilir
BitMiracle Docotic PDF, %100 yönetilen kod mimarisi ve geniş programatik PDF manipülasyon yetenekleri ile tanınan bir .NET PDF kütüphanesidir. Bununla birlikte, modüler eklenti yapısı—HTML'ye PDF dönüşümü, yerleşim özellikleri ve diğer işlevsellik için ayrı paketlerin gerekliliği—proje yönetimi ve lisanslama karmaşasına eklenir. Bu kapsamlı kılavuz, BitMiracle Docotic PDF'den IronPDF'e adım adım bir geçiş yolu sunar—tüm özellikleri tek bir NuGet paketinde yerleşik Chromium tabanlı HTML render özelliği ile tek bir .NET PDF kütüphanesi.
Neden BitMiracle Docotic PDF'den IronPDF'e Geçmelisiniz?
BitMiracle Docotic PDF, güçlü PDF manipülasyon özellikleri sunsa da, çeşitli faktörler geliştirme ekiplerini daha sade bir mimariye sahip alternatifler aramaya yönlendiriyor.
Paket Mimarisi Karşılaştırması
BitMiracle Docotic PDF, tam işlevsellik için birden fazla paketin gerekli olduğu modüler bir eklenti yaklaşımı kullanır:
| Aspekt | BitMiracle Docotic PDF | IronPDF |
|---|---|---|
| HTML-PDF | Ayrı eklenti gerektirir (HtmlToPdf) | Dahili çekirdek özellik |
| Paket Yapısı | Çekirdek + çoklu eklenti | Tek bir NuGet paketi |
| Lisanslama Modeli | Eklenti başına lisanslama | Tüm özellikler dahildir |
| API Karmaşıklığı | Her eklenti için ayrı namespace'ler | Birleşik API |
| HTML Motoru | Chromium (eklenti aracılığıyla) | Chromium (dahili) |
| Topluluk Büyüklüğü | Daha küçük | Daha büyük, daha fazla kaynak |
| Dokümantasyon | Teknik referans | Kapsamlı eğitimler |
Özellik Eşdeğerliğ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 gereklidir) | ✅ (dahili) |
| URL'yi PDF'ye çevir | ✅ (eklenti gereklidir) | ✅ (dahili) |
| PDF işleme | ✅ | ✅ |
| Metin çıkarma | ✅ | ✅ |
| Birleştirme/Bölme | ✅ | ✅ |
| Dijital imzalar | ✅ | ✅ |
| Şifreleme | ✅ | ✅ |
| Form doldurma | ✅ | ✅ |
| PDF/A uyumluluğu | ✅ | ✅ |
Yaklaşımda Temel Farklar
BitMiracle Docotic PDF, tuval tabanlı çizim ve koordinat konumlandırması (canvas.DrawString(x, y, text)) kullanırken,IronPDF düzen ve konumlandırma için HTML/CSS kullanır. Bu, web teknolojilerine aşina olan geliştiriciler için içerik oluşturmada bir paradigma değişikliği temsil eder.
Migration'a Ön Hazırlık
Ön Koşullar
Ortamınızın bu gereksinimleri karşıladığından emin olun:
- .NET Framework 4.6.2+ or .NET Core 3.1 / .NET 5-9
- Visual Studio 2019+ veya C# eklentisi ile VS Code
- NuGet Package Manager erişimi -IronPDF lisans anahtarı (ücretsiz deneme sürümü ironpdf.com adresinde mevcut)
BitMiracle Docotic PDFKullanım Denetimi
Tüm Docotic.Pdf referanslarını belirlemek 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" .
Beklenebilecek Kırıcı Değişiklikler
| Değişim | BitMiracle Docotic PDF | IronPDF | Etki |
|---|---|---|---|
| HTML render | HtmlToPdf eklentisi gerektirir | Yerleşik | Eklenti paketini kaldır |
| Sayfa dizinleme | 0 tabanlı (Pages[0]) |
0 tabanlı (Pages[0]) |
Değişim gerekmez |
| Koordinat sistemi | Alt-sol orijin | HTML/CSS akışı | Konumlandırma için CSS kullan |
| Tuval çizimi | PdfCanvas.DrawText() |
HTML işaretlemesi | Paradigma değişimi |
| Metin çıkarımı | page.GetText() |
pdf.ExtractAllText() |
Yöntem adı değişikliği |
| Belge yükleme | new PdfDocument(path) |
PdfDocument.FromFile(path) |
Kurucu → statik yöntem |
| Kaydetme | document.Save(path) |
pdf.SaveAs(path) |
Yöntem adı değişikliği |
| İmha | IDisposable deseni |
Gerekli değil | Daha basit kaynak yönetimi |
Adım Adım Geçiş Süreci
1. Adım: NuGet Paketlerini Güncelleyin
BitMiracle Docotic PDF paketlerini kaldır ve IronPDF'i yükle:
# 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
Adım 2: Ad Alanı Referanslarını Güncelleyin
BitMiracle Docotic PDF ad alanlarınıIronPDF ile değiştirin:
// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
// HtmlConverter from the BitMiracle.Docotic.Pdf.HtmlToPdf NuGet package
// also lives in the BitMiracle.Docotic.Pdf namespace (no extra using needed).
// Add this
using IronPdf;
// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
// HtmlConverter from the BitMiracle.Docotic.Pdf.HtmlToPdf NuGet package
// also lives in the BitMiracle.Docotic.Pdf namespace (no extra using needed).
// Add this
using IronPdf;
Imports IronPdf
Adım 3: Lisansı Yapılandırın
// 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"
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) |
| Dosyaya kaydet | document.Save(path) |
pdf.SaveAs(path) |
| Sayfa sayısını al | document.PageCount |
pdf.PageCount |
| Kapat/Atık Yönetimi | document.Dispose() |
Gerekli değil |
HTML'den PDF'ye Dönüşüm
| Görev | BitMiracle Docotic PDF(HtmlToPdf Eklentisi) | IronPDF |
|---|---|---|
| HTML dizgisi PDF'ye | await converter.CreatePdfFromStringAsync(html) |
renderer.RenderHtmlAsPdf(html) |
| HTML dosyasını PDF'ye | await converter.CreatePdfAsync(filePath) |
renderer.RenderHtmlFileAsPdf(path) |
| URL'yi PDF'ye çevir | await converter.CreatePdfAsync(new Uri(url)) |
renderer.RenderUrlAsPdf(url) |
| Sayfa boyutunu ayarla | options.Page.SetSize(PdfPaperSize.A4) |
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 |
| Kenar boşluklarını ayarla | options.Page.MarginTop = 20 (vb.) |
renderer.RenderingOptions.MarginTop = 20 |
Birleştirme ve Bölme İşlemleri
| Görev | BitMiracle Docotic PDF | IronPDF |
|---|---|---|
| Belgeleri birleştir | doc1.Append("file.pdf") (yol/Akış/byte) |
PdfDocument.Merge(pdf1, pdf2) |
| Belgeyi ayır | yeni belgeye document.CopyPage(index) |
pdf.CopyPages(start, end) |
Kod Göç Örnekleri
HTML'den PDF'ye Dönüşüm
En yaygın işlem, IronPDF'in sağladığı önemli basitleştirmeyi gösterir.
BitMiracle Docotic PDF Uygulaması:
// NuGet: Install-Package BitMiracle.Docotic.Pdf
// NuGet: Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf (separate add-on required)
using BitMiracle.Docotic.Pdf;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// HtmlConverter is async-only and downloads Chromium on first use
using var converter = await HtmlConverter.CreateAsync();
string html = "<html><body><h1>Hello World</h1><p>This is HTML'den PDF'ye conversion.</p></body></html>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
// NuGet: Install-Package BitMiracle.Docotic.Pdf
// NuGet: Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf (separate add-on required)
using BitMiracle.Docotic.Pdf;
using System;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
// HtmlConverter is async-only and downloads Chromium on first use
using var converter = await HtmlConverter.CreateAsync();
string html = "<html><body><h1>Hello World</h1><p>This is HTML'den PDF'ye conversion.</p></body></html>";
using var pdf = await converter.CreatePdfFromStringAsync(html);
pdf.Save("output.pdf");
Console.WriteLine("PDF created successfully");
}
}
Imports BitMiracle.Docotic.Pdf
Imports System
Imports System.Threading.Tasks
Module Program
Async Function Main() As Task
' HtmlConverter is async-only and downloads Chromium on first use
Using converter = Await HtmlConverter.CreateAsync()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is HTML'den PDF'ye conversion.</p></body></html>"
Using pdf = Await converter.CreatePdfFromStringAsync(html)
pdf.Save("output.pdf")
End Using
Console.WriteLine("PDF created successfully")
End Using
End Function
End Module
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 is HTML'den PDF'ye conversion.</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 is HTML'den PDF'ye conversion.</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 is HTML'den PDF'ye conversion.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Console.WriteLine("PDF created successfully")
End Sub
End Class
IronPDF, using ifade gereksinimini ortadan kaldırır ve Chromium tabanlı renderleme yeteneğini açıkça gösteren özel bir ChromePdfRenderer sınıfı sunar. Daha fazla HTML dönüşüm 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 BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;
class Program
{
static void Main()
{
using (var pdf1 = new PdfDocument("document1.pdf"))
{
// PdfDocument.Append accepts a file path, Stream, or byte[] —
// not another PdfDocument instance.
pdf1.Append("document2.pdf");
pdf1.Save("merged.pdf");
}
Console.WriteLine("PDFs merged successfully");
}
}
// NuGet: Install-Package BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;
class Program
{
static void Main()
{
using (var pdf1 = new PdfDocument("document1.pdf"))
{
// PdfDocument.Append accepts a file path, Stream, or byte[] —
// not another PdfDocument instance.
pdf1.Append("document2.pdf");
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")
' PdfDocument.Append accepts a file path, Stream, or byte[] —
' not another PdfDocument instance.
pdf1.Append("document2.pdf")
pdf1.Save("merged.pdf")
End Using
Console.WriteLine("PDFs merged successfully")
End Sub
End Class
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
IronPDF'nin statik Merge yöntemi, birden çok belgeyi doğrudan kabul eder ve tekrarlayan Append deseninden daha temiz bir API sağlar. Daha fazla seçenek için PDF birleştirme belgelerine bakın.
Metin Çıkarma
BitMiracle Docotic PDF Uygulaması:
// NuGet: Install-Package BitMiracle.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 BitMiracle.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
Class Program
Shared 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 Class
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
IronPDF, metin çıkarmayı çok satırlı bir döngüden tek bir yöntem çağrısına indirir. Daha fazla çıkarma seçeneği için metin çıkarma belgelerine bakın.
Parola 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")
Kapsamlı güvenlik seçenekleri için şifreleme belgelerine bakın.
Başlıklar 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")
IronPDF, dinamik sayfa numaralandırma için {page} ve {total-pages} gibi yer tutucu belirteçleri destekler. Daha fazla seçenek için başlıklar ve altbilgiler belgelerine bakın.
Kritik Taşıma Notları
Tuvalden HTML'ye Paradigma Değişikliği
BitMiracle Docotic PDF'nin tuval tabanlı çizim yaklaşımı HTML'ye CSS konumlandırması ile 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!")
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)
Aynı Sayfa Dizinleme
Her iki kütüphane de 0 tabanlı indeksleme kullanır (Pages[0] ilk sayfadır)—sayfa erişim kodu için değişiklik gerekmez.
İmha Gereksiz
IronPDF, bellek yönetimi için using ifadeleri gerektirmez, 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
Async Desteği
BitMiracle Docotic PDF'nin HtmlToPdf eklentisi her yerde asenkron desenlere ihtiyaç duyar.IronPDF hem 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)
ASP.NET Core Integration
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.BinaryData, "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.BinaryData, "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.BinaryData, "application/pdf", "report.pdf")
End Function
End Class
Taşınma Sonrası Kontrollistesi
Kod taşımasını tamamladıktan sonra, aşağıdakileri doğrulayın:
- Tüm birim testlerini çalıştırarak PDF oluşturmanın doğru çalıştığını doğrulayın
- PDF çıktısı kalitesini karşılaştırın (IronPDF'in Chromium motoru biraz farklı renderebilir—genellikle daha iyi olur)
- Metin çıkarma doğruluğunu doğrulayın
- Form doldurma işlevselliğini test edin
- Dijital imzaları geçerli olup olmadığını doğrulayın
- Yığın işlemlerinin performansını test edin
- Tüm hedef ortamları test edin
- CI/CD yapılarını güncelleyin
- Docotic.Pdf lisans dosyalarını kaldırın
Ek Kaynaklar
BitMiracle Docotic PDF'den IronPDF'e geçiş yapmak, birden fazla eklenti paketi yönetme karmaşasını ortadan kaldırırken aynı Chromium tabanlı HTML render yeteneklerini sunar. Çizim bazlı çizimden HTML/CSS konumlandırmasına 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.

