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

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:

  1. HTML Destegi Yok:MigraDocsunmuyor HTML'yi dogrudan destek. Dokümanları manuel olarak, Document, Section, Paragraph ve Table nesnelerini kullanarak, eleman bazında oluşturmalısınız—mevcutHTML/CSStasarımlarını kullanamazsınız.

  2. Proprietary Doküman Modeli: MigraDoc, AddSection(), AddParagraph(), AddTable(), AddRow() ve AddCell() 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.

  3. 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.Bold ve Format.Alignment gibi özellikler, tam CSS3 karşısında sınırlıdır.

  4. Ayrıntılı Kod: Basit duzenler bile icin onlarca satir kod gerektirir. Bir temel tablo, basliklarda 15-20 satirMigraDockodu gerektirebilir.

  5. JavaScript Destegi Yok: MigraDoc, dinamik içerik ya daJavaScriptcalistirmayi desteklemez, bu da modern grafikleme ve etkileşimli öğeler için seçenekleri sinirlar.

  6. 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

  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ükleme yeteneği
  3. 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
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

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" .
SHELL

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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
$vbLabelText   $csharpLabel

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}"
$vbLabelText   $csharpLabel

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;">
$vbLabelText   $csharpLabel

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;">
$vbLabelText   $csharpLabel

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")
$vbLabelText   $csharpLabel

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)
$vbLabelText   $csharpLabel

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>"
$vbLabelText   $csharpLabel

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()
$vbLabelText   $csharpLabel

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}")
$vbLabelText   $csharpLabel

Goc Kontrol Listesi

Geçiş Öncesi

  • TümMigraDocusing ifadelerini 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.Styles ile tanımlanan özel stilleri listeleyin -IronPDFlisans anahtarını edinin

Paket Değişiklikleri

  • PdfSharp-MigraDoc paketini çıkarın
  • PdfSharp-MigraDoc-GDI paketini çıkarın
  • IronPdf NuGet 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ştirin
  • AddParagraph()'i HTML <p> elemanlarına dönüştürün
  • Cell'i HTML <table> yapısına dönüştürün
  • AddPageField()'i {page} yer tutucusu ile değiştirin
  • AddNumPagesField()'i {total-pages} yer tutucusu ile değiştirin
  • Format özelliklerini CSS stillerine dönüştürün
  • PdfDocumentRenderer'i ChromePdfRenderer ile 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

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