IRONSOFTWAREHOME
FILMY

Jak uzyskać dostęp do wszystkich obiektów DOM pliku PDF za pomocą IronPDF w języku C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

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:

ProblemWpływRozwiązanie IronPDF
Ograniczenia parsowania CSSNowoczesne frameworki CSS, takie jak Bootstrap, zawodząPełna obsługa CSS Chromium
Konwersja elementów div na akapityStruktura HTML spłaszczona, układ stron zepsutyBezpośrednie renderowanie HTML
Model dokumentu FlowWymusza konwersję pośredniąNatywny HTML do PDF
Problemy z zewnętrznymi plikami CSSZignorowano złożone selektoryPełna obsługa plików CSS
Problemy z pamięciąOutOfMemoryException zgłoszone przy dużych plikachWydajne 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:

<!-- This modern HTML/CSS BREAKS in Przetwarzanie dokumentów Telerik -->
<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; }
Text

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

FunkcjaPrzetwarzanie dokumentów TelerikIronPDF
Renderowanie HTMLPrzepływ Konwersja dokumentówBezpośrednie renderowanie Chromium
Obsługa CSS3Ograniczone, wiele funkcji nie działaPełny CSS3
FlexboxNieobsługiwaneObsługiwane
CSS GridNieobsługiwaneObsługiwane
BootstrapUszkodzone (spłaszczenie div)Obsługiwane, w tym Bootstrap 5
Zewnętrzny CSSCzęścioweObsługiwane
JavaScriptNieobsługiwanePełne wsparcie
Duże dokumentyZgłoszone problemy z pamięciąWydajne przesyłanie strumieniowe
Złożoność APIZłożone (dostawcy, modele)Prosty (jedna klasa)
Model licencjiKomercjalizacja, część DevCraftProsta 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
SHELL

Zainstaluj 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;

Krok 3: Dodaj klucz licencyjny

Zainicjuj licencję podczas uruchamiania aplikacji:

// 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 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);

Po (IronPDF):

using IronPdf;

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

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);
}

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");

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);
}

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");

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);
}

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");

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 TelerikIronPDF
HtmlFormatProviderChromePdfRenderer
RadFlowDocumentNie jest potrzebne
PdfFormatProviderpdf.SaveAs()
RadFlowDocumentEditorManipulacja HTML
SectionHTML <section>
ParagraphHTML <p>
PdfExportSettingsRenderingOptions
RadFixedDocumentPdfDocument
Iteracja strony podręcznikaPdfDocument.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");

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
};

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);

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" .
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ęczników.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta