IRONSOFTWAREHOME
FILMY

Jak osadzać obrazy za pomocą adresów URI danych w języku C# | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 lipca 2026

Telerik Reporting to potężna platforma do raportowania dla Enterprise, która doskonale służy programistom .NET do tworzenia interaktywnych raportów z wykorzystaniem wizualnych projektantów i funkcji drążenia danych. Jednak dla zespołów, których głównym zapotrzebowaniem jest generowanie plików PDF, a nie kompleksowa infrastruktura raportowania,Telerik Reportingczęsto wiąże się ze znacznymi kosztami licencyjnymi, złożonością wdrożenia i dużym obciążeniem środowiska uruchomieniowego.

Niniejszy przewodnik zawiera kompletną ścieżkę migracji zTelerik Reportingdo IronPDF, wraz z instrukcjami krok po kroku, porównaniami kodu i praktycznymi przykładami dla profesjonalnych programistów .NET rozważających tę zmianę.

Dlaczego warto przejść z Telerik Reporting

Decyzja o migracji zTelerik Reportingzazwyczaj opiera się na dopasowaniu narzędzi do rzeczywistych wymagań. Główne powody, dla których zespoły programistów rozważają migrację, to:

Licencjonowanie per deweloper: Samodzielne raportowanie Telerik zaczyna się od ~$685 za dewelopera, a szerszy pakiet DevCraft Complete zaczyna się od ~$1,763 (Q1 2026, ComponentSource). Oba sprzedawane są jako licencje wieczyste + 1 rok utrzymania lub jako roczna subskrypcja. Dla zespołów, które potrzebują jedynie generowania plików PDF, oznacza to znaczny niewykorzystany potencjał.

**Zależność Projektanta Raportów:**Telerik Reportingwymaga samodzielnego, webowego lub zintegrowanego z Visual Studio projektanta plus zestawu uruchomieniowego pobranego z prywatnego źródła NuGet firmy Telerik (https://nuget.telerik.com/v3/index.json, wymagany klucz licencyjny). Zwiększa to złożoność środowisk programistycznych i procesów CI/CD.

Złożona infrastruktura: Dla scenariuszy przeglądarek HTML5 należy hostować usługę Reporting REST (Telerik.Reporting.Services.AspNetCore) z konfiguracją skryptów przechowywania, rozwiązywania i widoku — infrastruktura, która zwiększa nakład pracy przy prostych zadaniach generowania plików PDF.

Format własnościowy: Definicje raportów XML .trdp i .trdx (własny format firmy Telerik — nie RDL/RDLC, który jest wyraźnie nieobsługiwany) zamykają użytkownika w ekosystemie Telerik. Migracja lub modyfikacja szablonów wymaga narzędzi Telerik.

Ciężki czas uruchomienia: Duża stopa wdrożenia dla tego, co może być prostą konwersją HTML-to-PDF, plus opcjonalne biblioteki DLL do renderowania dla DOCX/XLSX/PPTX/XPS.

Odnawialne utrzymanie: Nawet na licencji wieczystej, bieżące aktualizacje, poprawki i wsparcie wymagają odnowienia subskrypcji serwisowej.

KiedyTelerik Reportingto przesada

Jeśli używaszTelerik Reportinggłównie do generowania plików PDF na podstawie danych, prawdopodobnie płacisz za funkcje, z których nie korzystasz:

PotrzebujeszTelerik zapewnia (nieużywane)
PDF z HTMLProjektant wizualny, drążenie danych
Proste raportyInteraktywna przeglądarka, eksport
Pliki PDF po stronie serweraKontrolki pulpitu, silnik wykresów

IronPDF zapewnia ukierunkowane generowanie plików PDF bez obciążenia związanego z raportowaniem w Enterprise.

##IronPDF a Telerik Reporting: porównanie funkcji

Zrozumienie różnic architektonicznych pomaga decydentom technicznym w ocenie inwestycji w migrację:

FunkcjaTelerik ReportingIronPDF
Skup się naTworzenie raportów z opcją eksportu do formatu PDFKompleksowe generowanie plików PDF z HTML
IntegracjaPłynna integracja z aplikacjami .NET CoreMożliwość integracji z dowolną aplikacją .NET
Złożoność konfiguracjiWymaga instalacji projektanta raportówProsta instalacja NuGet
CenyCzęść Suite komercyjnej DevCraftOddzielna licencja, bardziej opłacalna w przypadku samodzielnego generowania plików PDF
Generowanie plików PDFOgraniczone do eksportu raportówPełna funkcjonalność z zaawansowaną obsługą plików PDF
Grupa docelowaProgramiści potrzebujący rozwiązań zorientowanych na raportyProgramiści potrzebujący elastycznych rozwiązań do generowania plików PDF
Format szablonu.trdp / .trdx (XML; nie RDL/RDLC)HTML/CSS/Razor
Krzywa uczenia sięSpecyficzne dla Telerik (język wyrażeń, sekcje)Standardowe technologie internetowe
HTML do PDFPo stronie serwera przez HtmlTextBox (ograniczony HTML/CSS)Pełne renderowanie Chromium
URL do pliku PDFNie wbudowane (pobierz samodzielnie HTML)Tak
Obsługa CSSOgraniczone (selektory podobne do CSS w projektancie)Pełny CSS3
JavaScript w czasie renderowaniaNie (silnik serwera nie wykonuje JS)Pełna wersja ES2024
Podpisy cyfroweTak (X.509 / .PFX przez info o urzadzeniu PDF)Tak
PDF/APDF/A-1b, PDF/A-2b, PDF/A-3bPDF/A-3
Rozmiar w czasie wykonywaniaDuży (silnik + DLL-e renderujące na format)Mniejsze

Szybki start: Migracja zTelerik Reportingdo IronPDF

Migrację można rozpocząć natychmiast, wykonując te podstawowe kroki.

Krok 1: Zastąp pakiety NuGet

Usuń wszystkie pakiety Telerik Reporting:

# RemoveTelerik Reportingpackages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
SHELL

Zainstaluj IronPDF:

# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
SHELL

Krok 2: Aktualizacja przestrzeni nazw

Zastąp przestrzenie nazw Telerik przestrzenią nazw IronPDF:

// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;

Krok 3: Inicjalizacja licencji

Dodaj inicjalizację licencji podczas uruchamiania aplikacji:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Przykłady migracji kodu

Konwersja HTML do PDF

Najczęstszy przypadek użycia ilustruje różnicę architektoniczną między tymi bibliotekami .NET do obsługi plików PDF.

Podejście Telerik do raportowania:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };
        
        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);
        
        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}

Wersja Telerik wymaga utworzenia TypeReportSource, InstanceReportSource, obiektu Report z HtmlTextBox, ReportProcessor oraz ręcznego zarządzania strumieniem plików. ChromePdfRendererIronPDF obsługuje cały proces przy użyciu trzech linii kodu.

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

Konwersja adresów URL do formatu PDF

Konwersja adresów URL do formatu PDF ujawnia znaczną lukę w możliwościach Telerik Reporting.

Podejście Telerik do raportowania:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }
        
        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);
        
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;
        
        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);
        
        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}

Telerik Reporting nie posiada wbudowanej metody konwersji URL na PDF — samodzielnie pobierasz HTML (tutaj przez WebClient), a silnik po stronie serwera nie wykonuje JavaScript, więc zewnętrzne skrypty i dynamiczna treść nie są renderowane. Metoda RenderUrlAsPdfIronPDF rejestruje kompletną renderowaną stronę dokładnie tak, jak jest widziana w przeglądarce.

Zapoznaj się z dokumentacją dotyczącą konwersji adresów URL do formatu PDF, aby uzyskać informacje na temat uwierzytelniania i opcji niestandardowych nagłówków.

Wdrażanie nagłówków i stopek z numerami stron

Nagłówki i stopki z dynamicznymi numerami stron są niezbędne w profesjonalnych dokumentach. Podejścia do implementacji znacznie się różnią.

Podejście Telerik do raportowania:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();
        
        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;
        
        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;
        
        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);
        
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;
        
        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);
        
        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}

Podejście IronPDF:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };
        
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };
        
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}

Telerik Reporting wymaga utworzenia obiektów PageHeaderSection i PageFooterSection, skonfigurowania pomiarów Unit, ustawienia właściwości Location i Size oraz zarządzania elementami TextBox z określonymi współrzędnymi. Podejście oparte na HTML w IronPDF używa znanego stylowania CSS i prostych symbolów zastępczych, takich jak {page} i {total-pages}.

Więcej informacji na temat opcji nagłówków i stopek można znaleźć w dokumentacji dotyczącej nagłówków i stopek.

Odnośnik do dokumentacji APITelerik Reportingdla IronPDF

To mapowanie przyspiesza migrację, pokazując bezpośrednie odpowiedniki API:

Telerik ReportingIronPDF
Report klasaChromePdfRenderer
ReportProcessorrenderer.RenderHtmlAsPdf()
ReportSourceCiąg znaków HTML lub plik
.trdp / .trdx plikiSzablony HTML/CSS
ReportParameterInterpolacja ciągów znaków / Razor
ReportDataSourcePowiązanie danych w języku C#
RenderReport("PDF")RenderHtmlAsPdf()
Export()pdf.SaveAs()
TextBox element raportuHTML <span>, <p>, <div>
Table element raportuHTML <table>
PictureBoxHTML <img>
PageSettingsRenderingOptions

Typowe problemy związane z migracją i ich rozwiązania

Problem 1: Definicje raportów (pliki .trdp/.trdx)

Telerik Reporting wykorzystuje własne definicje raportów XML, których nie można bezpośrednio konwertować.

Rozwiązanie: Przekonwertuj na szablony HTML, otwierając raport w projektancie, dokumentując układ, powiązania danych i formatowanie, a następnie odtwarzając je jako szablony HTML/CSS. W złożonych scenariuszach do powiązania danych należy używać Razor.

Problem 2: Powiązanie źródła danych

Telerik Reporting używa SqlDataSource i źródeł danych obiektów z powiązaniami do wyrażeń.

Rozwiązanie: Pobieranie danych w języku C# i powiązanie z HTML:

var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";

Problem 3: Parametry raportu

Telerik Reporting używa ReportParameter z wbudowanym interfejsem użytkownika do parametrów.

Rozwiązanie: Przekazywanie parametrów bezpośrednio do generowania kodu HTML:

public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}

Problem 4: Funkcje interaktywne

Telerik Reporting zapewnia funkcje drążenia, sortowania i filtrowania w przeglądarce.

**Rozwiązanie:**IronPDF generuje statyczne pliki PDF. Aby zapewnić interaktywność, zachowaj dane w interfejsie użytkownika i wygeneruj plik PDF, gdy użytkownik kliknie "Eksportuj". Pozwoli to oddzielić interaktywne przeglądanie danych od generowania dokumentów.

Lista kontrolna migracji Telerik Reporting

Zadania przed migracją

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

grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
SHELL

Należy udokumentować źródła danych i parametry, wykonać zrzuty ekranu aktualnych układów raportów w celach wizualnych oraz zidentyfikować wspólne komponenty raportów, które można przekształcić w szablony HTML nadające się do ponownego wykorzystania.

Zadania związane z aktualizacją kodu

  1. Usuń pakiety Telerik NuGet
  2. Zainstaluj pakiet NuGet IronPDF
  3. Konwertuj pliki .trdx na szablony HTML
  4. Zamień ReportProcessor na ChromePdfRenderer
  5. Zaktualizuj powiązanie danych do interpolacji ciągów znaków lub Razor
  6. Konwertuj nagłówki/stopki na HTML za pomocą HtmlHeaderFooter
  7. Dodaj inicjalizację licencji podczas uruchamiania

Testy po migracji

Po migracji należy zweryfikować następujące aspekty:

  • Porównaj wizualnie pliki PDF z oryginalnymi raportami
  • Sprawdź poprawność danych w wygenerowanych plikach PDF
  • Testowanie paginacji w dokumentach wielostronicowych
  • Sprawdź, czy nagłówki/stopki wyświetlają się poprawnie na wszystkich stronach
  • Przeprowadź testy wydajności dla scenariuszy o dużej objętości

Kluczowe korzyści z migracji do IronPDF

Przejście zTelerik Reportingna IronPDF zapewnia szereg korzyści dla zespołów zajmujących się generowaniem plików PDF:

**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. Pełna obsługa CSS3 i JavaScript oznacza, że projekty stron internetowych są bezpośrednio konwertowane do formatu PDF.

**Uproszczone licencjonowanie:**IronPDF oferuje licencje na programistę bez konieczności zakupu kompleksowej Suite. Dla zespołów, które potrzebują jedynie generowania plików PDF, oznacza to znaczne oszczędności.

Standardowe technologie internetowe: HTML, CSS i JavaScript to umiejętności, które posiada każdy programista stron internetowych. Nie ma potrzeby uczenia się żadnych zastrzeżonych formatów szablonów ani specjalistycznych narzędzi projektowych.

Mniejsze obciążenie związane z wdrożeniem: Bez infrastruktury usług raportowania i komponentów projektanta wdrożenia są prostsze i szybsze.

Aktywna Praca Rozwojowa: Regularne aktualizacje IronPDFśledzą obecne wersje .NET, więc projekty na nowoczesnym .NET pozostają wspierane bez oczekiwania na kwartalne wydania raportów.

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