MigraDoc'tan IronPDF'e C# ile Nasıl Geçilir
MigraDoc'tan IronPDF'e geçiş, .NET PDF iş akışinizi element-element yapılandırmayi gerektiren uzun progrmatik bir belge modelinden, mevcut web geliştirme becerilerinden yararlanan modernHTML/CSStabanlı bir yaklaşıma dönüştürür. Bu kılavuz, profesyonel .NET geliştiricileri için MigraDoc'un ozel belge nesne modelinin dik öğrenme eğrisini ortadan kaldıran, kapsamlı ve adım adım bir geçiş yolu sunar.
Neden MigraDoc'tan IronPDF'e Geçmeli
MigraDocZorluklari
MigraDoc, programli PDF oluşturma icin guclu olsa da, modern geliştirme is akislarini etkileyen temel sinirliliklar vardir:
-
HTML Destegi Yok:MigraDocsunmuyor HTML'yi dogrudan destek. Dokümanları manuel olarak,
Document,Section,ParagraphveTablenesnelerini kullanarak, eleman bazında oluşturmalısınız—mevcutHTML/CSStasarımlarını kullanamazsınız. -
Proprietary Doküman Modeli: MigraDoc,
AddSection(),AddParagraph(),AddTable(),AddRow()veAddCell()gibi kavramları içeren benzersiz bir doküman modelini öğrenmeyi gerektirir. Bu dik öğrenme eğrisi, web geliştirme geçmişine sahip geliştiriciler için özellikle zorludur. -
Sınirli Stil Opcani: MigraDoc, guclu bir belge yapi yonetimi sunsa da, stil yetenekleri modern web araclarina gore mütevazi kalir.
Format.Font.Size,Format.Font.BoldveFormat.Alignmentgibi özellikler, tam CSS3 karşısında sınırlıdır. -
Ayrıntılı Kod: Basit duzenler bile icin onlarca satir kod gerektirir. Bir temel tablo, basliklarda 15-20 satirMigraDockodu gerektirebilir.
-
JavaScript Destegi Yok: MigraDoc, dinamik içerik ya daJavaScriptcalistirmayi desteklemez, bu da modern grafikleme ve etkileşimli öğeler için seçenekleri sinirlar.
- Grafikler Basit: MigraDoc'un grafik işlevselliği, Chart.js ya da D3 gibi modernJavaScriptgrafik kutuphanelerine gore sınirli kalır.
MigraDoc veIronPDFKarşılaştırması
| Özellik | MigraDoc | IronPDF |
|---|---|---|
| Içerik Tanımı | Programatik (Doküman/Bölüm/Paragraf) | HTML/CSS |
| Öğrenme Eğrisi | Değişken (mülkiyet DOM'u) | Kolay (web becerileri) |
| Stil Verme | Sinirli özellikler | Tam CSS3 |
| JavaScript | None | Tüm Chromium yürütmesi |
| Tablolar | Elle sütun/sıra tanımı | HTML <table> ile CSS |
| Çizelgeler | TemelMigraDocgrafik | Herhangi birJavaScriptgrafik kutuphanesi |
| Resimler | Elle boyutlandırma/pozisyonlama | Standart HTML <img> |
| Duyarli Düzenler | Desteklenmiyor | Flexbox, Grid |
| Lisans | Acik Kaynak (MIT) | Ticari |
.NET 10 ve C# 14 uyumunu 2025 ve 2026 boyunca yapmayı planlayan ekipler içinIronPDFtanıdıkHTML/CSSbecerilerini kullanmalarını sağlayan, ozel bir dokuma modelini öğrenmeden geliştiricilere geleceğe hazır bir temel sağlar.
Göç Karmaşıklık Değerlendirmesi
Özelliklere Göre Tahmini Çaba
| Özellik | Göç Karmaşıklığı |
|---|---|
| Basit Metin | Çok Düşük |
| Tablolar | Low |
| Üstbilgi/Altbilgi | Low |
| Stiller | Medium |
| Resimler | Low |
| Çizelgeler | Medium |
Paradigma Değişikliği
BuMigraDocgeçişindeki temel değişiklik, programatik dokuma oluşturmadan HTML öncelikli çevriminceye dogru bir dönüşümdür:
MigraDoc: Belge → AddSection() → AddParagraph() → PdfDocumentRenderer → Kaydet()
IronPDF: ChromePdfRenderer → RenderHtmlAsPdf(html) → SaveAs()
Bu paradigma kayması, kod karmasikliğini önemli ölçüde azaltırken aynı zamanda CSS yoluyla sınırsız stil kapasiteleri sağlar.
Başlamadan Önce
Önkoşullar
- .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGet Erişimi: NuGet paketlerini yükleme yeteneği
- IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin
NuGet Paket Değişiklikleri
# RemoveMigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard
# Install IronPDF
dotnet add package IronPdf
# RemoveMigraDocpackages
dotnet remove package PdfSharp-MigraDoc
dotnet remove package PdfSharp-MigraDoc-GDI
dotnet remove package PDFsharp.MigraDoc.Standard
# Install IronPDF
dotnet add package IronPdf
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"
MigraDocKullanımını Tanımla
# Find allMigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
# Find allMigraDocreferences
grep -r "using MigraDoc\|PdfDocumentRenderer\|AddSection\|AddParagraph" --include="*.cs" .
grep -r "AddTable\|AddRow\|AddColumn\|AddCell\|AddImage" --include="*.cs" .
API Referansının Tamamı
Sınıf Eslemeleri
| MigraDoc Sinifi | IronPDF Eşdeğeri |
|---|---|
Document |
ChromePdfRenderer |
Section |
HTML <body> veya <div> |
Paragraph |
HTML <p>, <h1>, vb. |
FormattedText |
HTML <span>, <strong>, vb. |
Table |
HTML <table> |
Row |
HTML <tr> |
Column |
HTML <col> veya CSS |
Cell |
HTML <td>, <th> |
PdfDocumentRenderer |
ChromePdfRenderer |
Metot Eşlemeleri
| MigraDoc Yöntemi | IronPDF Eşdeğeri |
|---|---|
document.AddSection() |
HTML yapı |
section.AddParagraph(text) |
<p>text</p> |
section.AddTable() |
<table> |
table.AddColumn(width) |
CSS width özelliği |
table.AddRow() |
<tr> |
row.Cells[n].AddParagraph() |
<td>content</td> |
renderer.RenderDocument() |
RenderHtmlAsPdf(html) |
pdfDocument.Save(path) |
pdf.SaveAs(path) |
Yer Tutucu Eşlemeleri (Başlıklar/Alt Bilgiler)
| MigraDoc Yöntemi | IronPDF Yer Tutucu |
|---|---|
AddPageField() |
{page} |
AddNumPagesField() |
{total-pages} |
AddDateField() |
{date} |
Kod Geçiş Örnekleri
Örnek 1: Temel HTML'den PDF'e (Temel Farklilik)
Oncesi (MigraDoc):
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;
class Program
{
static void Main()
{
//MigraDocdoesn't support HTML directly
// Must manually create document structure
Document document = new Document();
Section section = document.AddSection();
Paragraph paragraph = section.AddParagraph();
paragraph.AddFormattedText("Hello World", TextFormat.Bold);
paragraph.Format.Font.Size = 16;
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");
}
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
using System.Diagnostics;
class Program
{
static void Main()
{
//MigraDocdoesn't support HTML directly
// Must manually create document structure
Document document = new Document();
Section section = document.AddSection();
Paragraph paragraph = section.AddParagraph();
paragraph.AddFormattedText("Hello World", TextFormat.Bold);
paragraph.Format.Font.Size = 16;
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");
}
}
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.Rendering
Imports System.Diagnostics
Class Program
Shared Sub Main()
' MigraDoc doesn't support HTML directly
' Must manually create document structure
Dim document As New Document()
Dim section As Section = document.AddSection()
Dim paragraph As Paragraph = section.AddParagraph()
paragraph.AddFormattedText("Hello World", TextFormat.Bold)
paragraph.Format.Font.Size = 16
Dim pdfRenderer As New PdfDocumentRenderer()
pdfRenderer.Document = document
pdfRenderer.RenderDocument()
pdfRenderer.PdfDocument.Save("output.pdf")
End Sub
End Class
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")
End Sub
End Class
Bu örnek,MigraDocileIronPDFarasindaki temel farki aciklar. MigraDoc, bir Document oluşturmayı, bir Section eklemeyi, bir Paragraph eklemeyi, AddFormattedText() ile TextFormat.Bold kullanmayı, Format.Font.Size ayarlamayı, bir PdfDocumentRenderer oluşturmayı, dokümanı atamayı, RenderDocument() çağırmayı ve sonunda kaydetmeyi gerektirir. Bu, birden fazla nesneyle 10+ satir kod demektir.
IronPDF, ayni sonucu 3 satırda sağlar: bir rendender oluştur, HTML'yi cevir ve kaydet. HTML <h1> etiketi doğal olarak kalın, büyük başlık stilini sağlar. Daha fazla işleme seçeneği için HTML'den PDF'ye dokümantasyonuna bakın.
Örnek 2: Tablo Oluşturma
Oncesi (MigraDoc):
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;
class Program
{
static void Main()
{
Document document = new Document();
Section section = document.AddSection();
Table table = section.AddTable();
table.Borders.Width = 0.75;
Column column1 = table.AddColumn("3cm");
Column column2 = table.AddColumn("3cm");
Row row1 = table.AddRow();
row1.Cells[0].AddParagraph("Name");
row1.Cells[1].AddParagraph("Age");
Row row2 = table.AddRow();
row2.Cells[0].AddParagraph("John");
row2.Cells[1].AddParagraph("30");
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("table.pdf");
}
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.DocumentObjectModel.Tables;
using MigraDoc.Rendering;
class Program
{
static void Main()
{
Document document = new Document();
Section section = document.AddSection();
Table table = section.AddTable();
table.Borders.Width = 0.75;
Column column1 = table.AddColumn("3cm");
Column column2 = table.AddColumn("3cm");
Row row1 = table.AddRow();
row1.Cells[0].AddParagraph("Name");
row1.Cells[1].AddParagraph("Age");
Row row2 = table.AddRow();
row2.Cells[0].AddParagraph("John");
row2.Cells[1].AddParagraph("30");
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("table.pdf");
}
}
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.DocumentObjectModel.Tables
Imports MigraDoc.Rendering
Class Program
Shared Sub Main()
Dim document As New Document()
Dim section As Section = document.AddSection()
Dim table As Table = section.AddTable()
table.Borders.Width = 0.75
Dim column1 As Column = table.AddColumn("3cm")
Dim column2 As Column = table.AddColumn("3cm")
Dim row1 As Row = table.AddRow()
row1.Cells(0).AddParagraph("Name")
row1.Cells(1).AddParagraph("Age")
Dim row2 As Row = table.AddRow()
row2.Cells(0).AddParagraph("John")
row2.Cells(1).AddParagraph("30")
Dim pdfRenderer As New PdfDocumentRenderer()
pdfRenderer.Document = document
pdfRenderer.RenderDocument()
pdfRenderer.PdfDocument.Save("table.pdf")
End Sub
End Class
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlTable = @"
<table border='1'>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>John</td><td>30</td></tr>
</table>";
var pdf = renderer.RenderHtmlAsPdf(htmlTable);
pdf.SaveAs("table.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
string htmlTable = @"
<table border='1'>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>John</td><td>30</td></tr>
</table>";
var pdf = renderer.RenderHtmlAsPdf(htmlTable);
pdf.SaveAs("table.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim htmlTable As String = "
<table border='1'>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>John</td><td>30</td></tr>
</table>"
Dim pdf = renderer.RenderHtmlAsPdf(htmlTable)
pdf.SaveAs("table.pdf")
End Sub
End Class
MigraDoc tablo oluşturma, Table, Column, Row ve Cell hiyerarşisini anlamayı gerektirir. Sütunları açıkça AddColumn() ile eklemeli, satırları AddRow() ile oluşturmalı, hücrelere Cells[n] ile indeksle erişmeli ve içeriği AddParagraph() ile eklemelisiniz. Çerçeve table.Borders.Width ile ayarlanır.
IronPDF, her web geliştiricisinin bildiği standart HTML tablo söz dizimini kullanır. border='1' özelliği çerçeve sağlar, <th> elemanları başlık hücreleri oluşturur ve <td> elemanları veri hücreleri oluşturur. Zebra şeritleri, hover efektleri veya duyarlı düzenler gibi ileri düzey stil verme için CSS eklenebilir. PDF'lerde tablo oluşturma hakkında daha fazla bilgi edinin.
Örnek 3: Sayfa Numaralı Başlıklar ve Altbilgiler
Oncesi (MigraDoc):
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
class Program
{
static void Main()
{
Document document = new Document();
Section section = document.AddSection();
// Add header
Paragraph headerPara = section.Headers.Primary.AddParagraph();
headerPara.AddText("Document Header");
headerPara.Format.Font.Size = 12;
headerPara.Format.Alignment = ParagraphAlignment.Center;
// Add footer
Paragraph footerPara = section.Footers.Primary.AddParagraph();
footerPara.AddText("Page ");
footerPara.AddPageField();
footerPara.Format.Alignment = ParagraphAlignment.Center;
// Add content
section.AddParagraph("Main content of the document");
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("header-footer.pdf");
}
}
// NuGet: Install-Package PdfSharp-MigraDoc-GDI
using MigraDoc.DocumentObjectModel;
using MigraDoc.Rendering;
class Program
{
static void Main()
{
Document document = new Document();
Section section = document.AddSection();
// Add header
Paragraph headerPara = section.Headers.Primary.AddParagraph();
headerPara.AddText("Document Header");
headerPara.Format.Font.Size = 12;
headerPara.Format.Alignment = ParagraphAlignment.Center;
// Add footer
Paragraph footerPara = section.Footers.Primary.AddParagraph();
footerPara.AddText("Page ");
footerPara.AddPageField();
footerPara.Format.Alignment = ParagraphAlignment.Center;
// Add content
section.AddParagraph("Main content of the document");
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("header-footer.pdf");
}
}
Imports MigraDoc.DocumentObjectModel
Imports MigraDoc.Rendering
Class Program
Shared Sub Main()
Dim document As New Document()
Dim section As Section = document.AddSection()
' Add header
Dim headerPara As Paragraph = section.Headers.Primary.AddParagraph()
headerPara.AddText("Document Header")
headerPara.Format.Font.Size = 12
headerPara.Format.Alignment = ParagraphAlignment.Center
' Add footer
Dim footerPara As Paragraph = section.Footers.Primary.AddParagraph()
footerPara.AddText("Page ")
footerPara.AddPageField()
footerPara.Format.Alignment = ParagraphAlignment.Center
' Add content
section.AddParagraph("Main content of the document")
Dim pdfRenderer As New PdfDocumentRenderer()
pdfRenderer.Document = document
pdfRenderer.RenderDocument()
pdfRenderer.PdfDocument.Save("header-footer.pdf")
End Sub
End Class
Sonra (IronPDF):
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page}");
pdf.SaveAs("header-footer.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page}");
pdf.SaveAs("header-footer.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>")
pdf.AddTextHeader("Document Header")
pdf.AddTextFooter("Page {page}")
pdf.SaveAs("header-footer.pdf")
End Sub
End Class
MigraDoc başlıkları ve altbilgileri, section.Headers.Primary ve section.Footers.Primary erişimini, bunlar içinde paragraflar oluşturmayı, AddText() ile metin eklemeyi ve dinamik içerik için AddPageField() gibi özel yöntemleri kullanmayı gerektirir. Hizalama, Format.Alignment ayarlamayı gerektirir.
IronPDF, AddTextHeader() ve AddTextFooter() yöntemlerini PdfDocument nesnesi üzerinde sağlar. {page} yer tutucu, geçerli sayfa numarasını otomatik olarak ekler. Daha karmaşık başlıklar için, tamHTML/CSSdesteği ile HtmlHeaderFooter kullanabilirsiniz. Gelişmiş seçenekler için başlıklar ve altbilgiler belgelerine bakın.
Kritik Geçiş Notları
Sayfa Numarası Yer Tutucu Sözdizimi
Başlıklar ve altbilgiler için en önemli değişiklik yer tutucu söz dizimidir:
//MigraDocfield methods:
footerPara.AddPageField(); // Current page
footerPara.AddNumPagesField(); // Total pages
//IronPDFplaceholders:
"Page {page} of {total-pages}"
//MigraDocfield methods:
footerPara.AddPageField(); // Current page
footerPara.AddNumPagesField(); // Total pages
//IronPDFplaceholders:
"Page {page} of {total-pages}"
' MigraDoc field methods:
footerPara.AddPageField() ' Current page
footerPara.AddNumPagesField() ' Total pages
' IronPDF placeholders:
"Page {page} of {total-pages}"
Format Özelliklerini CSS'ye Dönüştürme
MigraDoc'un Format özellikleri CSS'ye eşlenir:
// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;
//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
// MigraDoc:
paragraph.Format.Font.Size = 16;
paragraph.Format.Font.Bold = true;
paragraph.Format.Alignment = ParagraphAlignment.Center;
//IronPDF(CSS):
<p style="font-size: 16pt; font-weight: bold; text-align: center;">
' MigraDoc:
paragraph.Format.Font.Size = 16
paragraph.Format.Font.Bold = True
paragraph.Format.Alignment = ParagraphAlignment.Center
' IronPDF(CSS):
'<p style="font-size: 16pt; font-weight: bold; text-align: center;">
Birim Dönüşümü
MigraDoc çeşitli birimler kullanır;IronPDFkenar boşlukları milimetre cinsindendir:
- "1cm" = 10mm
- "1in" = 25.4mm
- "72pt" = 25.4mm
// MigraDoc:
table.AddColumn("3cm");
//IronPDF(CSS):
<th style="width: 3cm;">
// MigraDoc:
table.AddColumn("3cm");
//IronPDF(CSS):
<th style="width: 3cm;">
' MigraDoc:
table.AddColumn("3cm")
' IronPDF(CSS):
<th style="width: 3cm;">
Render Şablonu Değişikliği
Tüm render şablonu değişir:
//MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
//MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
' MigraDocpattern (DELETE):
Dim pdfRenderer As New PdfDocumentRenderer()
pdfRenderer.Document = document
pdfRenderer.RenderDocument()
pdfRenderer.PdfDocument.Save("output.pdf")
' IronPDFpattern:
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Ariza Giderme
Sorun 1: Belge/Bölüm Bulunamadı
Problem: IronPDF'de Document ve Section sınıfları yok.
Çözüm: HTML yapısıyla değiştirin:
// MigraDoc
Document document = new Document();
Section section = document.AddSection();
// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
// MigraDoc
Document document = new Document();
Section section = document.AddSection();
// IronPDF
string html = "<html><body>...</body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
Imports MigraDoc.DocumentObjectModel
Imports IronPdf
Dim document As New Document()
Dim section As Section = document.AddSection()
Dim html As String = "<html><body>...</body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
Sorun 2: AddParagraph Bulunamadı
Problem: AddParagraph() yöntemi yok.
Çözüm: HTML öğelerini kullanın:
// MigraDoc
section.AddParagraph("Hello World");
// IronPDF
"<p>Hello World</p>"
// MigraDoc
section.AddParagraph("Hello World");
// IronPDF
"<p>Hello World</p>"
Sorun 3: PdfDocumentRenderer Bulunamadı
Problem: PdfDocumentRenderer sınıfı yok.
Çözüm: ChromePdfRenderer kullanın:
// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
// IronPDF
var renderer = new ChromePdfRenderer();
// MigraDoc
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
// IronPDF
var renderer = new ChromePdfRenderer();
' MigraDoc
Dim pdfRenderer As New PdfDocumentRenderer()
' IronPDF
Dim renderer As New ChromePdfRenderer()
Sorun 4: AddPageField Çalışmıyor
Problem: AddPageField() yöntemi yok.
Çözüm:IronPDFyer tutucu söz dizimini kullanın:
// MigraDoc
footerPara.AddPageField();
// IronPDF
pdf.AddTextFooter("Page {page}");
// MigraDoc
footerPara.AddPageField();
// IronPDF
pdf.AddTextFooter("Page {page}");
' MigraDoc
footerPara.AddPageField()
' IronPDF
pdf.AddTextFooter("Page {page}")
Goc Kontrol Listesi
Geçiş Öncesi
- TümMigraDoc
usingifadelerini belirleyin - Belge tablo yapıları (sütunlar, satırlar, stillendirme) not edin
- Başlık/altbilgi içeriğini ve sayfa alanı kullanımını not edin
document.Stylesile tanımlanan özel stilleri listeleyin -IronPDFlisans anahtarını edinin
Paket Değişiklikleri
PdfSharp-MigraDocpaketini çıkarınPdfSharp-MigraDoc-GDIpaketini çıkarınIronPdfNuGet paketini yükleyin:dotnet add package IronPdf- Ad alanı eklerini güncelleyin
Kod Değişiklikleri
- Başlangıçta lisans anahtarı yapılandırması ekleyin
Section'i HTML yapısıyla değiştirinAddParagraph()'i HTML<p>elemanlarına dönüştürünCell'i HTML<table>yapısına dönüştürünAddPageField()'i{page}yer tutucusu ile değiştirinAddNumPagesField()'i{total-pages}yer tutucusu ile değiştirinFormatözelliklerini CSS stillerine dönüştürünPdfDocumentRenderer'iChromePdfRendererile değiştirin
Test Etme
- Eski ve yeni PDF'lerin görsel çıktısını karşılaştırın
- Sayfa kırılmalarının doğru çalıştığını doğrulayın
- Başlık/altbilgi render etme ve sayfa numaralarını kontrol edin
- Tablo biçimlendirme ve kenarlıkları doğrulayın
- Karmaşık çok sayfalı belgelerle test edin
Geçişten Sonra
-MigraDocile ilgili belgeleri kaldırın
- Takım eğitim materyallerini güncelleyin
- Yeni HTML şablon konumlarını belgeleyin

