Jak przejść z Telerik Reporting na IronPDF w języku C#
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:
| Potrzebujesz | Telerik zapewnia (nieużywane) |
|---|---|
| PDF z HTML | Projektant wizualny, drążenie danych |
| Proste raporty | Interaktywna przeglądarka, eksport |
| Pliki PDF po stronie serwera | Kontrolki 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ę:
| Funkcja | Telerik Reporting | IronPDF |
|---|---|---|
| Skup się na | Tworzenie raportów z opcją eksportu do formatu PDF | Kompleksowe generowanie plików PDF z HTML |
| Integracja | Płynna integracja z aplikacjami .NET Core | Możliwość integracji z dowolną aplikacją .NET |
| Złożoność konfiguracji | Wymaga instalacji projektanta raportów | Prosta instalacja NuGet |
| Ceny | Część Suite komercyjnej DevCraft | Oddzielna licencja, bardziej opłacalna w przypadku samodzielnego generowania plików PDF |
| Generowanie plików PDF | Ograniczone do eksportu raportów | Pełna funkcjonalność z zaawansowaną obsługą plików PDF |
| Grupa docelowa | Programiści potrzebujący rozwiązań zorientowanych na raporty | Programiś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 PDF | Po stronie serwera przez HtmlTextBox (ograniczony HTML/CSS) |
Pełne renderowanie Chromium |
| URL do pliku PDF | Nie wbudowane (pobierz samodzielnie HTML) | Tak |
| Obsługa CSS | Ograniczone (selektory podobne do CSS w projektancie) | Pełny CSS3 |
| JavaScript w czasie renderowania | Nie (silnik serwera nie wykonuje JS) | Pełna wersja ES2024 |
| Podpisy cyfrowe | Tak (X.509 / .PFX przez info o urzadzeniu PDF) | Tak |
| PDF/A | PDF/A-1b, PDF/A-2b, PDF/A-3b | PDF/A-3 |
| Rozmiar w czasie wykonywania | Duż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
# 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
Zainstaluj IronPDF:
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
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;
// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;
// After (IronPDF)
using IronPdf;
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing
' After (IronPDF)
Imports IronPdf
Krok 3: Inicjalizacja licencji
Dodaj inicjalizację licencji podczas uruchamiania aplikacji:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
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);
}
}
}
// 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);
}
}
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Collections.Specialized
Imports System.IO
Class TelerikExample
Shared Sub Main()
Dim reportSource As New Telerik.Reporting.TypeReportSource()
Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
instanceReportSource.ReportDocument = New Telerik.Reporting.Report() With {
.Items = {New Telerik.Reporting.HtmlTextBox() With {.Value = "<h1>Hello World</h1><p>Sample HTML content</p>"}}
}
Dim reportProcessor As New ReportProcessor()
Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)
Using fs As New FileStream("output.pdf", FileMode.Create)
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
End Using
End Sub
End Class
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");
}
}
// 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");
}
}
Imports IronPdf
Imports System
Class IronPdfExample
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>")
pdf.SaveAs("output.pdf")
End Sub
End Class
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);
}
}
}
// 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);
}
}
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Net
Imports System.IO
Class TelerikExample
Shared Sub Main()
Dim htmlContent As String
Using client As New WebClient()
htmlContent = client.DownloadString("https://example.com")
End Using
Dim report As New Telerik.Reporting.Report()
Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
.Value = htmlContent
}
report.Items.Add(htmlTextBox)
Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
instanceReportSource.ReportDocument = report
Dim reportProcessor As New ReportProcessor()
Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)
Using fs As New FileStream("webpage.pdf", FileMode.Create)
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
End Using
End Sub
End Class
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");
}
}
// 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");
}
}
Imports IronPdf
Imports System
Class IronPdfExample
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
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);
}
}
}
// 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);
}
}
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing
Imports System.IO
Class TelerikExample
Shared Sub Main()
Dim report As New Telerik.Reporting.Report()
' Add page header
Dim pageHeader As New Telerik.Reporting.PageHeaderSection()
pageHeader.Height = New Unit(0.5, UnitType.Inch)
pageHeader.Items.Add(New Telerik.Reporting.TextBox() With {
.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
Dim pageFooter As New Telerik.Reporting.PageFooterSection()
pageFooter.Height = New Unit(0.5, UnitType.Inch)
pageFooter.Items.Add(New Telerik.Reporting.TextBox() With {
.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
Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
.Value = "<h1>Report Content</h1><p>This is the main content.</p>"
}
report.Items.Add(htmlTextBox)
Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
instanceReportSource.ReportDocument = report
Dim reportProcessor As New ReportProcessor()
Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)
Using fs As New FileStream("report_with_headers.pdf", FileMode.Create)
fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
End Using
End Sub
End Class
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");
}
}
// 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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Class IronPdfExample
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
' Configure header and footer
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Document Header</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
}
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>")
pdf.SaveAs("report_with_headers.pdf")
End Sub
End Class
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 Reporting | IronPDF | ||||
|---|---|---|---|---|---|
Report klasa |
ChromePdfRenderer |
||||
ReportProcessor |
renderer.RenderHtmlAsPdf() |
||||
ReportSource |
Ciąg znaków HTML lub plik | ||||
.trdp / .trdx pliki |
Szablony HTML/CSS | ||||
ReportParameter |
Interpolacja ciągów znaków / Razor | ||||
ReportDataSource |
Powiązanie danych w języku C# | ||||
RenderReport("PDF") |
RenderHtmlAsPdf() |
||||
Export() |
pdf.SaveAs() |
||||
TextBox element raportu |
HTML , , |
||||
Table element raportu |
HTML |

