Przejdź do treści stopki
PRZEWODNIKI MIGRACJI

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

Telerik Document Processing dostarczany jest jako część pakietów Telerik UI i DevCraft, oferując deweloperom możliwości generowania PDF obok przetwarzania Word, Excel i PowerPoint. Jednakże, gdy nowoczesne standardy webowe ewoluują i projekty wymagają pełnego wsparcia dla CSS3, Flexbox i Bootstrap, zespoły deweloperskie zgłaszają obawy dotyczące ograniczeń w architekturze renderowania HTML-to-PDF w 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.

Zgłoszone ograniczenia techniczne

Deweloperzy zgłosili problemy z Przetwarzanie dokumentów Telerik podczas obsługi nowoczesnego HTML i CSS:

Problem Wpływ Rozwiązanie IronPDF
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 zgłoszone przy dużych plikach 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
    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; }

Raporty wydajności dla dużych dokumentów

Poza ograniczeniami CSS, programiści zgłosili błędy OutOfMemoryException podczas przetwarzania dużych plików przy użyciu Telerik Document Processing, w związku z nieobsługiwanymi przestrzeniami kolorów i awariami podczas łączenia PDF w niektórych scenariuszach. Zespoły pracujące z generacją dokumentów na dużą skalę zauważyły problemy ze stabilnością, które warto ocenić przed zaangażowaniem się w długoterminowe użytkowanie.

IronPDF a 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łne wsparcie
Duże dokumenty Zgłoszone 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 do IronPDF moż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 na IronPDF znacznie 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 kodu IronPDF zastępują ponad 15 linijek kodu Telerik Document Processing. Co ważniejsze, wersja IronPDF poprawnie 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 a IronPDF stają 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 tworzenia HtmlFormatProvider, importowania do RadFlowDocument, tworzenia PdfFormatProvider i ręcznego zarządzania strumieniami plików. ChromePdfRendererIronPDF zajmuje się całym procesem poprzez jedno wywołanie 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. Należy ręcznie pobrać zawartość HTML za pomocą HttpClient, tracąc zewnętrzny CSS, wykonanie JavaScript i dynamiczne treści w tym procesie. Metoda RenderUrlAsPdfIronPDF przechwytuje kompletną wyrenderowaną stronę dokładnie tak, jak wygląda 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()IronPDF obsł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
Paragraph HTML

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.IronPDF udostę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 firmy IronPDF umoż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).IronPDF używa milimetrów. Wymaga to konwersji podczas migracji:

// 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);
// 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);
' 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 udokumentować 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 NuGet IronPDF
  3. Zaktualizuj deklaracje using z Telerik.Windows.Documents na IronPdf
  4. Dodaj inicjalizację klucza licencyjnego podczas uruchamiania
  5. Zastąp HtmlFormatProvider przez ChromePdfRenderer
  6. Usuń kroki pośrednie RadFlowDocument
  7. Zamień eksporty PdfFormatProvider na bezpośrednie wywołania SaveAs()
  8. Zaktualizuj nagłówki/stopki, aby używać HtmlHeaderFooter
  9. Przekształć 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 na IronPDF zapewnia natychmiastowe korzyści:

Nowoczesny silnik renderujący Chromium:IronPDF wykorzystuje 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łne wsparcie dla CSS3 i JavaScript: Flexbox, Grid, Bootstrap 5, zmienne CSS i nowoczesny JavaScript działają poprawnie, zapewniając zgodność z nowoczesnymi standardami webowymi.

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:IronPDF oferuje 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.

Zwróć uwagęTelerik to zarejestrowany znak towarowy jego właściciela. Ta strona nie jest powiązana z, popierana przez ani sponsorowana przez Progress Software. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i odzwierciedlają informacje dostępne publicznie w momencie pisania.

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

Zespół wsparcia Iron

Jesteśmy online 24 godziny, 5 dni w tygodniu.
Czat
E-mail
Zadzwoń do mnie