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:
- Spłaszcza strukturę HTML — elementy
<div>stają się akapitami - Ignoruje nowoczesny CSS — układy Flexbox i Grid całkowicie zawodzą
- Nie działa z Bootstrapem — systemy kolumn nie wyświetlają się jako kolumny
- 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>
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
Zainstaluj IronPDF:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
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
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"
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)
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")
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
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")
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
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")
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
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")
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")
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
}
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)
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" .
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
- Usuń pakiety Telerik NuGet
- Zainstaluj pakiet IronPdf NuGet
- Zaktualizuj instrukcje using od
Telerik.Windows.DocumentsdoIronPdf - Dodaj inicjalizację klucza licencyjnego podczas uruchamiania
- Zastąp
HtmlFormatProviderprzezChromePdfRenderer - Usuń
RadFlowDocumentkroki pośrednie - Zastąp eksporty
PdfFormatProviderbezpośrednimi wywołaniamiSaveAs() - Zaktualizuj nagłówki/stopki, aby używać
HtmlHeaderFooter - Przekonwertuj ustawienia strony na
RenderingOptions - 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.

