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ş, belirsiz bir programatik döküman modeli gerektiren manuel eleman-eleman yapısından mevcut web geliştirme becerilerinden yararlanan modern birHTML/CSStabanlı yaklaşıma dönüştürür. Bu kılavuz, MigraDoc'un özel belge nesne modelinin öğrenme eğrisini ortadan kaldıran kapsamlı, adım adım bir geçiş yolu sağlar.

MigraDoc'tan IronPDF'e Neden Geçilmeli

MigraDoc Zorlukları

MigraDoc, PDFsharp PdfDocument içine işler ve PDFsharp paketine bağlı olan bir yerleşim motorudur. empira / PDFsharp-Team tarafından MIT lisansı altında sürdürülen bu araç, programlı üretim için güçlüdür, ancak modern geliştirme iş akışlarını etkileyen temel sınırlamalara sahiptir:

  1. HTML Desteği Yok:MigraDocdoğrudan HTML'yi desteklemez. Belgeleri element-öğe bazında Document, Section, Paragraph ve Table nesneleri kullanarak elle oluşturmalısınız—mevcutHTML/CSStasarımlarını kullanamazsınız.

  2. Tescilli Belge Modeli: MigraDoc, AddSection(), AddParagraph(), AddTable(), AddRow() ve AddCell() gibi kavramlara sahip benzersiz bir belge modelini öğrenmeyi gerektirir. Bu dik öğrenme eğrisi, özellikle web geliştirme altyapısına sahip geliştiriciler için zordur.

  3. Sınırlı Stil Seçenekleri: MigraDoc, güçlü belge yapısı yönetimi sunsa da, stil belirleme yetenekleri modern web araçlarına kıyasla mütevazıdır. Format.Font.Size, Format.Font.Bold ve Format.Alignment gibi özellikler tam CSS3'e göre sınırlıdır.

  4. Belirgin Kod: Basit düzenler oluşturmak bile düzinelerce satır kod gerektirir. Başlıklarla basit bir tablo, 15-20 satırMigraDockodu gerektirebilir.

  5. JavaScript Desteği Yok: MigraDoc, dinamik içeriği render edemez veyaJavaScriptçalıştıramaz, modern grafik ve etkileşimli ögeler için seçenekleri kısıtlar.

  6. Grafikler Temel: MigraDoc'un grafik işlevselliği Chart.js veya D3 gibi modernJavaScriptgrafik kütüphanelerine kıyasla sınırlıdır.

MigraDoc vs IronPDF Karşılaştırması

Özellik MigraDoc IronPDF
İçerik Tanımı Programlanabilir (Belge/Bölüm/Paragraf) HTML/CSS
Öğrenme Eğrisi Yoğun (özel DOM) Kolay (web becerileri)
Stilleme Sınırlı özellikler Tam CSS3
JavaScript None Tam Chromium uygulaması
Tablolar Manuel sütun/satır tanımı HTML with CSS
Grafikler TemelMigraDocgrafikler Herhangi birJavaScriptgrafik kütüphanesi
Görseller Manuel boyutlandırma/konumlandırma Standard HTML
Duyarlı Düzenler Desteklenmiyor Flexbox, Grid
Lisans Açık Kaynak (MIT) Ticari

Modern .NET'i hedefleyen ekipler için,IronPDF geliştiricilerin özel bir belge modeli öğrenmek yerine tanıdıkHTML/CSSbecerilerini kullanmalarına izin verir.


Göç Karmaşıklığı Değerlendirmesi

Özelliklere Göre Tahmini Çaba

Özellik Göç Karmaşıklığı
Basit Metin Çok Düşük
Tablolar Düşük
Başlıklar/Altbilgiler Düşük
Tarzlar Orta
Görseller Düşük
Grafikler Orta

Paradigma Değişimi

BuMigraDocgeçişindeki temel değişiklik, programatik belge oluşturmadan HTML-öncelikli rendera geçiştir:

MigraDoc:  Belge → Bölüm Ekle() → Paragraf Ekle() → PdfBelgeRenderlayıcı → Kaydet()
IronPDF:   ChromePdfRenderer → RenderHtmlAsPdf(html) → SaveAs()

Bu paradigma değişimi, CSS ile sınırsız stil yetenekleri sağlarken, kod karmaşıklığını büyük ölçüde azaltır.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# RemoveMigraDocpackages (package IDs are case-sensitive on nuget.org)
dotnet remove package PDFsharp-MigraDoc
dotnet remove package PDFsharp-MigraDoc-GDI
dotnet remove package PDFsharp-MigraDoc-WPF

# Install IronPDF
dotnet add package IronPdf
# RemoveMigraDocpackages (package IDs are case-sensitive on nuget.org)
dotnet remove package PDFsharp-MigraDoc
dotnet remove package PDFsharp-MigraDoc-GDI
dotnet remove package PDFsharp-MigraDoc-WPF

# 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

MigraDoc Kullanımını Belirleyin

# 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

Tam API Referansı

Sınıf Eşlemeleri

MigraDoc Sınıfı IronPDF Eşdeğeri
Document ChromePdfRenderer
Section HTML or
Paragraph HTML

,

, etc.

FormattedText HTML , , etc.
Table HTML or CSS
Row HTML
Column HTML
Cell HTML ,
PdfDocumentRenderer ChromePdfRenderer

Yöntem Eşlemeleri

MigraDoc Yöntemi IronPDF Eşdeğeri
document.AddSection() HTML yapısı
section.AddParagraph(text) <p>text</p>
section.AddTable() <table>
table.AddColumn(width) CSS width property
table.AddRow() <tr>
row.Cells[n].AddParagraph() <td>content</td>
renderer.RenderDocument() RenderHtmlAsPdf(html)
pdfDocument.Save(path) pdf.SaveAs(path)

Yer Tutucu Eşlemeleri (Üstbilgi/Altbilgi)

MigraDoc Yöntemi IronPDF Yer Tutucu
AddPageField() {page}
AddNumPagesField() {total-pages}
AddDateField() {date}

Kod Göç Örnekleri

Örnek 1: Temel HTML'den PDF'e (Temel Fark)

Önce (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

Sonrası (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,MigraDocile IronPDF arasındaki temel farkı göstermektedir. MigraDoc, Document oluşturmayı, Section eklemeyi, Paragraph eklemeyi, AddFormattedText() ile TextFormat.Bold kullanmayı, Format.Font.Size ayarlamayı, PdfDocumentRenderer oluşturmayı, belgeyi atamayı, RenderDocument() çağırmayı ve son olarak kaydetmeyi gerektirir. Bu, 10'dan fazla satır kod ve birden çok nesne içerir.

IronPDF, aynı sonucu 3 satırda gerçekleştirir: bir renderlayıcı oluşturun, HTML renderlayın ve kaydedin. HTML <h1> etiketi doğal olarak kalın, büyük başlık stilini sağlar. HTML'den PDF'ye belgelemeyi ek işleme seçenekleri için inceleyin.

Örnek 2: Tablolar Oluşturma

Önce (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

Sonrası (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ı AddColumn() ile açıkça eklemeli, satırları AddRow() ile oluşturmalı, hücrelere indekse göre Cells[n] ile erişmeli ve içerik eklemelisiniz AddParagraph() ile. Kenar, table.Borders.Width ile ayarlanır.

IronPDF, her web geliştiricisinin bildiği standart HTML tablo sözdizimini kullanır. border='1' özelliği kenar sağlar,

öğeleri başlık hücreleri oluşturur ve öğeleri veri hücreleri oluşturur. Zebra çizgileri, hover efektleri veya duyarlı düzenler gibi ileri düzey stil için CSS eklenebilir. PDF'lerde tablolar oluşturma hakkında daha fazla bilgi edinin.

Örnek 3: Sayfa Numaraları ile Başlıklar ve Alt Bilgiler

Önce (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

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter
        {
            CenterText = "Document Header"
        };
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter
        {
            CenterText = "Page {page}"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter
        {
            CenterText = "Document Header"
        };
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter
        {
            CenterText = "Page {page}"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
        Dim renderer As New ChromePdfRenderer()
        renderer.RenderingOptions.TextHeader = New TextHeaderFooter With {
            .CenterText = "Document Header"
        }
        renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
            .CenterText = "Page {page}"
        }

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Main content of the document</h1>")
        pdf.SaveAs("header-footer.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

MigraDoc başlık ve alt bilgi, section.Headers.Primary ve section.Footers.Primary erişimini gerektirir, bu içlerinde paragraflar oluşturur, AddText() ile metin ekler ve özel yöntemler kullanır, dinamik içerik için AddPageField() gibi. Hizalama, Format.Alignment ayarlanmasını gerektirir.

IronPDF, RenderingOptions.TextHeader / RenderingOptions.TextFooter üzerinde TextHeaderFooter kullanarak başlıklar ve alt bilgiler yapılandırır, LeftText, CenterText ve RightText bölgeyle. {page} yer tutucu, otomatik olarak mevcut sayfa numarasını ekler. Daha zengin düzenler için tamHTML/CSSdesteği ile HtmlHeader / HtmlFooter HtmlHeaderFooter kullanın. Başlıklar ve altbilgiler belgeleri için gelişmiş seçenekler görün.


Kritik Taşıma Notları

Sayfa Numarası Yer Tutucu Sözdizimi

Başlıklar ve altbilgiler için en önemli değişiklik yer tutucu sözdizimidir:

//MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDF placeholders:
"Page {page} of {total-pages}"
//MigraDocfield methods:
footerPara.AddPageField();       // Current page
footerPara.AddNumPagesField();   // Total pages

//IronPDF placeholders:
"Page {page} of {total-pages}"
' MigraDocfield methods:
footerPara.AddPageField()       ' Current page
footerPara.AddNumPagesField()   ' Total pages

' IronPDF placeholders:
"Page {page} of {total-pages}"
$vbLabelText   $csharpLabel

Format Özelliklerini CSS'e Dönüştür

MigraDoc'un Format özellikleri CSS ile eşleşir:

// 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 farklı birimi kullanırken;IronPDF kenar 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

Renderlama Deseni Değişikliği

Tüm renderlama deseni değişir:

//MigraDocpattern (DELETE):
PdfDocumentRenderer pdfRenderer = new PdfDocumentRenderer();
pdfRenderer.Document = document;
pdfRenderer.RenderDocument();
pdfRenderer.PdfDocument.Save("output.pdf");

//IronPDF pattern:
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");

//IronPDF pattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
' MigraDoc pattern (DELETE):
Dim pdfRenderer As New PdfDocumentRenderer()
pdfRenderer.Document = document
pdfRenderer.RenderDocument()
pdfRenderer.PdfDocument.Save("output.pdf")

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

Hata Ayıklama

Sorun 1: Belge/Bölüm Bulunamadı

Sorun: 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ı

Sorun: AddParagraph() metodu yok.

Çözüm: HTML elemanlarını 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ı

Sorun: 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

Sorun: AddPageField() metodu yok.

Çözüm:IronPDF yer tutucu sözdizimini kullanın:

// MigraDoc
footerPara.AddPageField();

// IronPDF
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    CenterText = "Page {page}"
};
// MigraDoc
footerPara.AddPageField();

// IronPDF
renderer.RenderingOptions.TextFooter = new TextHeaderFooter
{
    CenterText = "Page {page}"
};
' MigraDoc
footerPara.AddPageField()

' IronPDF
renderer.RenderingOptions.TextFooter = New TextHeaderFooter With {
    .CenterText = "Page {page}"
}
$vbLabelText   $csharpLabel

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • TümMigraDocusing ifadelerini tanımlayın.
  • Belge tablo yapıları (sütunlar, satırlar, stil)
  • Başlık/altbilgi içeriği ve sayfa alanı kullanımı
  • document.Styles ile tanımlanmış özel stilleri listeleyin. -IronPDF lisans anahtarını edinin

Paket Değişiklikleri

  • PDFsharp-MigraDoc, PDFsharp-MigraDoc-GDI ve PDFsharp-MigraDoc-WPF paketlerini kaldırın.
  • IronPdf NuGet paketi kurun: dotnet add package IronPdf
  • Ad alanı ithalatlarını güncelleyin

Kod Değişiklikleri

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

  • Section HTML yapısıyla değiştirin.
  • AddParagraph()'i HTML

    öğelerine dönüştürün.

  • Cell'i HTML yapısına dönüştürün.
  • AddPageField()'i {page} yer tutucu ile değiştirin.
  • AddNumPagesField()'i {total-pages} yer tutucu 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'ler arasında görsel çıktı karşılaştırması
    • Sayfa kırılmaları düzgün çalışıyor mu kontrol edin
    • Başlık/altbilgi işleme ve sayfa numaralarını kontrol et
    • Tablo biçimlendirme ve kenarlıkları doğrula
    • Karmaşık çok sayfalı belgelerle test yap

    Geçiş Sonrası

    -MigraDocile ilgili belgeleri kaldır

    • Ekip eğitim materyallerini güncelleyin
    • Yeni HTML şablon konumlarını belgeleyin

    Lütfen dikkate alınMigraDoc ve PDFSharp, ilgili sahiplerinin tescilli markalarıdır. Bu site, empira Software GmbH ile ilişkili, onaylanmış veya desteklenmiş değildir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

    Curtis Chau
    Teknik Yazar

    Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

    Daha Fazla Oku

    Iron Destek Ekibi

    Haftada 5 gün, 24 saat çevrimiçiyiz.
    Sohbet
    E-posta
    Beni Ara