Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

Jak przejść z Telerik Document Processing na IronPDF w języku C#

Telerik Document Processing służy ekosystemowi .NET jako część Suite DevCraft, oferując programistom możliwości generowania plików PDF oraz przetwarzania plików WORD, Excel i PowerPoint. Jednak wraz z ewolucją nowoczesnych standardów internetowych i rosnącym zapotrzebowaniem projektów na pełną obsługę CSS3, Flexbox i Bootstrap, wiele zespołów programistycznych odkrywa fundamentalne ograniczenia architektury renderowania HTML do PDF firmy Telerik.

Niniejszy przewodnik przedstawia kompletną ścieżkę migracji z Przetwarzanie dokumentów Telerik do IronPDF, zawierającą instrukcje krok po kroku, porównania kodu oraz praktyczne przykłady zaczerpnięte bezpośrednio z rzeczywistych scenariuszy migracji.

Dlaczego warto przejść z Telerik Document Processing

Decyzja o migracji z Przetwarzanie dokumentów Telerik wynika zazwyczaj z ograniczeń technicznych, które ujawniają się podczas pracy z nowoczesnymi treściami internetowymi. Zrozumienie tych ograniczeń pomaga uzasadnić wysiłek związany z migracją i określa oczekiwania co do tego, co rozwiązuje IronPDF.

Istotne ograniczenia techniczne

Telerik Document Processing ma zasadnicze problemy z obsługą nowoczesnego HTML i CSS:

Problem Wpływ RozwiązanieIronPDF
Ograniczenia parsowania CSS Nowoczesne frameworki CSS, takie jak Bootstrap, zawodzą Pełna obsługa CSS Chromium
Konwersja elementów div na akapity Struktura HTML spłaszczona, układ stron zepsuty Bezpośrednie renderowanie HTML
Model dokumentu Flow Wymusza konwersję pośrednią Natywny HTML do PDF
Problemy z zewnętrznymi plikami CSS Zignorowano złożone selektory Pełna obsługa plików CSS
Problemy z pamięcią OutOfMemoryException w przypadku dużych dokumentów Wydajne przesyłanie strumieniowe

Główny problem: HTML nie jest renderowany poprawnie

Telerik Document Processing konwertuje HTML na pośredni model "Flow Document" przed wygenerowaniem pliku PDF. Ta decyzja architektoniczna powoduje szereg problemów:

  1. Spłaszcza strukturę HTML — elementy <div> stają się akapitami
  2. Ignoruje nowoczesny CSS — układy Flexbox i Grid całkowicie zawodzą
  3. Nie działa z Bootstrapem — systemy kolumn nie wyświetlają się jako kolumny
  4. Utrata formatowania — złożone selektory CSS są ignorowane

Rozważmy ten nowoczesny kod HTML, który wykorzystuje standardowe układy CSS:


<div class="container">
    <div class="row">
        <div class="col-md-6">Column 1</div>
        <div class="col-md-6">Column 2</div>
    </div>
</div>

<div style="display: flex; gap: 20px;">
    <div style="flex: 1;">Flex Item 1</div>
    <div style="flex: 1;">Flex Item 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
    <div>Grid Item 1</div>
    <div>Grid Item 2</div>
    <div>Grid Item 3</div>
</div>

<div class="container">
    <div class="row">
        <div class="col-md-6">Column 1</div>
        <div class="col-md-6">Column 2</div>
    </div>
</div>

<div style="display: flex; gap: 20px;">
    <div style="flex: 1;">Flex Item 1</div>
    <div style="flex: 1;">Flex Item 2</div>
</div>

<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
    <div>Grid Item 1</div>
    <div>Grid Item 2</div>
    <div>Grid Item 3</div>
</div>
HTML

W Przetwarzanie dokumentów Telerik wszystkie te układy są renderowane jako kolejne akapity. Dwukolumnowy układ Bootstrap zamienia się w dwa wiersze tekstu. Elementy flexboxu układają się pionowo. Elementy CSS Grid pojawiają się jeden po drugim.

Funkcje CSS, które nie działają w przetwarzaniu dokumentów Telerik

Programiści udokumentowali liczne problemy z kompatybilnością CSS:

/* ❌ These CSS features DON'T WORK in Przetwarzanie dokumentów Telerik */

/* Flexbox - Nieobsługiwane */
.container { display: flex; }
.item { flex: 1; }

/* CSS Grid - Nieobsługiwane */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }

/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }

/* CSS Variables - Nieobsługiwane */
:root { --primary: #007bff; }
.btn { color: var(--primary); }

/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }

/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }

Problemy z wydajnością w przypadku dużych dokumentów

Oprócz ograniczeń CSS, Przetwarzanie dokumentów Telerik odnotował błędy OutOfMemoryException podczas przetwarzania dużych plików. Zespoły programistów zajmujące się generowaniem dużych ilości dokumentów napotkały problemy ze stabilnością, z którymi inne biblioteki radzą sobie bardziej efektywnie.

IronPDFa Telerik Document Processing: porównanie funkcji

Zrozumienie różnic w funkcjonalnościach pomaga decydentom technicznym w ocenie inwestycji związanej z migracją:

Funkcja Przetwarzanie dokumentów Telerik IronPDF
Renderowanie HTML Przepływ Konwersja dokumentów Bezpośrednie renderowanie Chromium
Obsługa CSS3 Ograniczone, wiele funkcji nie działa Pełny CSS3
Flexbox Nieobsługiwane Obsługiwane
CSS Grid Nieobsługiwane Obsługiwane
Bootstrap Uszkodzone (spłaszczenie div) Obsługiwane, w tym Bootstrap 5
Zewnętrzny CSS Częściowe Obsługiwane
JavaScript Nieobsługiwane Pełna obsługa ES2024
Duże dokumenty Problemy z pamięcią Wydajne przesyłanie strumieniowe
Złożoność API Złożone (dostawcy, modele) Prosty (jedna klasa)
Model licencji Komercjalizacja, część DevCraft Prosta licencja samodzielna

Szybki start z migracją: 5 minut do pierwszego pliku PDF

Migracja z Przetwarzanie dokumentów Telerik doIronPDFmoże rozpocząć się natychmiast. Oto najszybszy sposób na wygenerowanie pierwszego pliku PDF za pomocą IronPDF.

Krok 1: Zaktualizuj pakiety NuGet

Usuń wszystkie pakiety do przetwarzania dokumentów Telerik:

# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
SHELL

Zainstaluj IronPDF:

# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
SHELL

Krok 2: Aktualizacja instrukcji using

Zastąp przestrzenie nazw Telerik przestrzenią nazw IronPdf:

// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;

// After (IronPDF)
using IronPdf;
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;

// After (IronPDF)
using IronPdf;
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports Telerik.Documents.Primitives

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

Krok 3: Dodaj klucz licencyjny

Zainicjuj licencję podczas uruchamiania aplikacji:

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Krok 4: Zaktualizuj kod generujący pliki PDF

Przejście z Przetwarzanie dokumentów Telerik naIronPDFznacznie upraszcza kod źródłowy.

Przed (Telerik Document Processing):

using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);

File.WriteAllBytes("output.pdf", pdfBytes);
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);

File.WriteAllBytes("output.pdf", pdfBytes);
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model

Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(htmlContent)

Dim pdfProvider As New PdfFormatProvider()
Dim pdfBytes As Byte() = pdfProvider.Export(document)

File.WriteAllBytes("output.pdf", pdfBytes)
$vbLabelText   $csharpLabel

Po (IronPDF):

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Różnica jest od razu widoczna: 3 linijki koduIronPDFzastępują ponad 15 linijek kodu Telerik Document Processing. Co ważniejsze, wersjaIronPDFpoprawnie renderuje nowoczesny CSS, z którym model Flow Document firmy Telerik nie może sobie poradzić.

Przykłady migracji kodu

Konwersja HTML do PDF

Jest to najczęstszy przypadek użycia generowania plików PDF. Różnice architektoniczne między Przetwarzanie dokumentów Telerik aIronPDFstają się jasne w tym porównaniu.

Podejście firmy Telerik do przetwarzania dokumentów:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
    pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
    pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO

Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)

Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("output.pdf")
    pdfProvider.Export(document, output)
End Using
$vbLabelText   $csharpLabel

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Imports IronPdf

Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

Wersja Telerik wymaga utworzenia HtmlFormatProvider, zaimportowania do RadFlowDocument, utworzenia PdfFormatProvider oraz ręcznego zarządzania strumieniami plików. ChromePdfRenderer firmyIronPDFobsługuje cały proces za pomocą jednego wywołania metody.

W przypadku bardziej zaawansowanych scenariuszy konwersji HTML do PDF zapoznaj się z przewodnikiem po konwersji HTML do PDF.

Konwersja adresów URL do formatu PDF

Przechwytywanie stron internetowych jako plików PDF ujawnia kolejną istotną różnicę między bibliotekami.

Podejście firmy Telerik do przetwarzania dokumentów:

// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

string url = "https://example.com";

using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
    pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

string url = "https://example.com";

using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);

HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);

PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
    pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

Module Module1
    Sub Main()
        Dim url As String = "https://example.com"

        Using client As New HttpClient()
            Dim html As String = Await client.GetStringAsync(url)

            Dim htmlProvider As New HtmlFormatProvider()
            Dim document As RadFlowDocument = htmlProvider.Import(html)

            Dim pdfProvider As New PdfFormatProvider()
            Using output As FileStream = File.OpenWrite("webpage.pdf")
                pdfProvider.Export(document, output)
            End Using
        End Using
    End Sub
End Module
$vbLabelText   $csharpLabel

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

string url = "https://example.com";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

string url = "https://example.com";

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Imports IronPdf

Dim url As String = "https://example.com"

Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
$vbLabelText   $csharpLabel

Telerik Document Processing nie posiada natywnej funkcji konwersji adresów URL do formatu PDF. Musisz ręcznie pobierać zawartość HTML za pomocą HttpClient, tracąc przy tym zewnętrzne arkusze CSS, wykonanie kodu JavaScript oraz zawartość dynamiczną. Metoda RenderUrlAsPdf firmyIronPDFprzechwytuje całą wyrenderowaną stronę dokładnie tak, jak wygląda ona w przeglądarce.

Zapoznaj się z dokumentacją dotyczącą konwersji adresów URL do formatu PDF, aby poznać dodatkowe opcje, w tym uwierzytelnianie i niestandardowe nagłówki.

Łączenie wielu plików PDF

Łączenie plików PDF ilustruje różnicę w szczegółowości tych bibliotek .NET do obsługi plików PDF.

Podejście firmy Telerik do przetwarzania dokumentów:

// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;

PdfFormatProvider provider = new PdfFormatProvider();

RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
    document1 = provider.Import(input);
}

RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
    document2 = provider.Import(input);
}

RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
    mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
    mergedDocument.Pages.Add(page);
}

using (FileStream output = File.OpenWrite("merged.pdf"))
{
    provider.Export(mergedDocument, output);
}
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;

PdfFormatProvider provider = new PdfFormatProvider();

RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
    document1 = provider.Import(input);
}

RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
    document2 = provider.Import(input);
}

RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
    mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
    mergedDocument.Pages.Add(page);
}

using (FileStream output = File.OpenWrite("merged.pdf"))
{
    provider.Export(mergedDocument, output);
}
Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Fixed.Model
Imports System.IO

Dim provider As New PdfFormatProvider()

Dim document1 As RadFixedDocument
Using input As FileStream = File.OpenRead("document1.pdf")
    document1 = provider.Import(input)
End Using

Dim document2 As RadFixedDocument
Using input As FileStream = File.OpenRead("document2.pdf")
    document2 = provider.Import(input)
End Using

Dim mergedDocument As New RadFixedDocument()
For Each page In document1.Pages
    mergedDocument.Pages.Add(page)
Next
For Each page In document2.Pages
    mergedDocument.Pages.Add(page)
Next

Using output As FileStream = File.OpenWrite("merged.pdf")
    provider.Export(mergedDocument, output)
End Using
$vbLabelText   $csharpLabel

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;

var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");

var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Imports IronPdf

Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")

Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
$vbLabelText   $csharpLabel

Wersja Telerik wymaga importowania każdego dokumentu osobno, ręcznego przeglądania stron, dodawania ich do nowego dokumentu oraz zarządzania wieloma strumieniami plików. Metoda PdfDocument.Merge() firmyIronPDFobsługuje wszystko w jednym wywołaniu.

Aby uzyskać informacje na temat zaawansowanych scenariuszy łączenia, w tym selektywnego wyodrębniania stron, zapoznaj się z przewodnikiem dotyczącym łączenia i dzielenia plików PDF.

Mapowanie API przetwarzania dokumentów Telerik do IronPDF

Ta tabela odniesień przyspiesza migrację, pokazując bezpośrednie odpowiedniki API:

Przetwarzanie dokumentów Telerik IronPDF
HtmlFormatProvider ChromePdfRenderer
RadFlowDocument Nie jest potrzebne
PdfFormatProvider pdf.SaveAs()
RadFlowDocumentEditor Manipulacja HTML
Section HTML <section>
Paragraph HTML <p>
PdfExportSettings RenderingOptions
RadFixedDocument PdfDocument
Iteracja strony podręcznika PdfDocument.Merge()

Obsługa nagłówków i stopek

Telerik Document Processing wykorzystuje model programowy dla nagłówków i stopek.IronPDFudostępnia nagłówki oparte na HTML z dynamicznymi symbolami zastępczymi.

Telerik Document Processing:

section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text")
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")
$vbLabelText   $csharpLabel

IronPDF:

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    MaxHeight = 25
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    MaxHeight = 25
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    .MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Footer Text</div>",
    .MaxHeight = 25
}
$vbLabelText   $csharpLabel

Podejście oparte na HTML firmyIronPDFumożliwia pełne stosowanie stylów CSS w nagłówkach i stopkach, a także dynamiczne symbole zastępcze dla numerów stron i dat. Więcej informacji można znaleźć w dokumentacji dotyczącej nagłówków i stopek.

Przeliczanie jednostek: DIP na milimetry

Telerik Document Processing wykorzystuje do pomiarów piksele niezależne od urządzenia (DIP).IronPDFużywa milimetrów. Wymaga to konwersji podczas migracji:

// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters

// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4;    // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;

// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters

// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4;    // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;

// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
' Telerik uses DIPs (device-independent pixels)
' IronPDF uses millimeters

' 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4    ' 1 inch
renderer.RenderingOptions.MarginBottom = 25.4

' Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
$vbLabelText   $csharpLabel

Lista kontrolna migracji przetwarzania dokumentów Telerik

Zadania przed migracją

Przeprowadź audyt kodu źródłowego, aby zidentyfikować wszystkie przypadki użycia Telerik Document Processing:

grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
SHELL

Należy udokumentówać istniejące implementacje, w tym używane dostawcy formatów, konfiguracje nagłówków/stopek, niestandardowe ustawienia stron oraz wszelkie modyfikacje modelu Flow Document.

Podczas migracji

  1. Usuń pakiety Telerik NuGet
  2. Zainstaluj pakiet IronPdf NuGet
  3. Zaktualizuj instrukcje using od Telerik.Windows.Documents do IronPdf
  4. Dodaj inicjalizację klucza licencyjnego podczas uruchamiania
  5. Zastąp HtmlFormatProvider przez ChromePdfRenderer
  6. Usuń RadFlowDocument kroki pośrednie
  7. Zastąp eksporty PdfFormatProvider bezpośrednimi wywołaniami SaveAs()
  8. Zaktualizuj nagłówki/stopki, aby używać HtmlHeaderFooter
  9. Przekonwertuj ustawienia strony na RenderingOptions
  10. Zaktualizuj jednostki marginesów z DIP na milimetry

Weryfikacja po migracji

Po migracji sprawdź następujące ulepszenia:

  • Renderowanie CSS powinno ulec znacznej poprawie
  • Układy Bootstrap powinny wyświetlać się poprawnie (w Telerik tak nie jest)
  • Układy Flexbox i Grid powinny działać (w Telerik nie działają)
  • Wykonanie kodu JavaScript powinno działać w przypadku treści dynamicznych
  • Generowanie dużych dokumentów powinno przebiegać bez wyjątków pamięci

Kluczowe korzyści z migracji do IronPDF

Przejście z Przetwarzanie dokumentów Telerik naIronPDFzapewnia natychmiastowe korzyści:

Nowoczesny silnik renderujący Chromium:IronPDFwykorzystuje ten sam silnik renderujący co przeglądarka Google Chrome, co gwarantuje, że pliki PDF są wyświetlane dokładnie tak, jak treść wygląda w nowoczesnych przeglądarkach. Eliminuje to problemy z kompatybilnością CSS związane z modelem dokumentu Flow firmy Telerik.

Pełna obsługa CSS3 i JavaScript: Flexbox, Grid, Bootstrap 5, zmienne CSS i nowoczesny JavaScript działają poprawnie. Wraz ze wzrostem popularności platformy .NET 10 i języka C# 14 do 2026 r. nowoczesne renderowanieIronPDFzapewnia zgodność z aktualnymi standardami internetowymi.

Prostsze API: Mniejsza liczba linii kodu, brak pośrednich modeli dokumentów oraz intuicyjne nazwy metod skracają czas programowania i zmniejszają obciążenie związane z utrzymaniem.

Licencjonowanie samodzielne:IronPDFoferuje proste licencjonowanie bez konieczności zakupu kompleksowej Suite, zapewniając ekonomiczne rozwiązanie dla zespołów, które potrzebują wyłącznie funkcji związanych z plikami PDF.

Aktywny rozwój: Regularne aktualizacje zapewniają zgodność z obecnymi i przyszłymi wersjami .NET, poprawkami bezpieczeństwa oraz ulepszeniami funkcji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie