Porównanie pomiędzy Jsreport i IronPDF
1. Wprowadzenie
W erze cyfrowej pliki PDF, czyli Portable Document Format, stały się codzienną koniecznością, niezbędną do przechowywania i udostępniania informacji w niezawodnym i spójnym formacie. Niezależnie od tego, czy chodzi o przekształcenie właściwości danych w starannie sformatowany plik PDF, czy o stworzenie profesjonalnej faktury, programiści często sięgają po potężne biblioteki klienckie C#, takie jak IronPDF i lokalne JSReport Studio, zamiast Phantom PDF do tworzenia serwerów.
IronPDF oferuje najlepszą wydajność w konwersji HTML do PDF w środowisku .NET Framework, podczas gdy JSReport SDK oferuje dynamiczne rozwiązania do tworzenia raportów, kładąc nacisk na elastyczność i dostosowywanie przy użyciu lokalnego serwera JSReport i plików konfiguracyjnych. Obie biblioteki oferują unikalne rozwiązania, odpowiadające na różne potrzeby programistów w zakresie generowania i edycji plików PDF.
2. Korzystanie z JSReport Server .NET
JSReport SDK .NET to zaawansowane rozwiązanie do raportowania dla aplikacji .NET, zoptymalizowane szczególnie pod kątem środowisk ASP.NET Core. Wyróżnia się możliwością przekształcania wyników widoku do różnych formatów, takich jak PDF, Excel, DOCX i CSV, bezpośrednio z HTML i JavaScript. Możliwość tę ułatwia wykorzystanie silników ASP.NET MVC, takich jak Razor, do generowania raportów przy użyciu serwera raportowania.
JSReport .NET zapewnia kompleksowy zestaw domyślnych rozszerzeń lokalnych, w tym planowanie, wersjonowanie szablonów, raporty podrzędne, zarządzanie użytkownikami, import/eksport szablonów oraz tworzenie kopii zapasowych, co zwiększa jego wszechstronność i przydatność w różnych scenariuszach biznesowych. Obsługuje również szeroką gamę interfejsów API, w tym REST API, CLI i SDK, umożliwiając renderowanie raportów praktycznie z dowolnego miejsca.
2.1 Kluczowe funkcje
2.1.1 Integracja z ASP.NET Core
JSReport SDK oferuje pakiet NuGet jsreport.AspNetCore przeznaczony specjalnie dla aplikacji ASP.NET Core. Obejmuje to filtry oprogramowania pośredniczącego zdolne do przekształcania wyników widoków MVC do pożądanych formatów, wykorzystując widoki jako generatory HTML, a serwer JSReport jako transformator wyników.
2.1.2 Elastyczna konfiguracja
Konfiguracja obejmuje użycie pakietów takich jak jsreport.AspNetCore, jsreport.Local i jsreport.Binary. Te klasy pomocnicze ułatwiają połączenie z lokalną instancją JSReport lub instancją zdalną za pośrednictwem jsreport.Client.
2.1.3 Transformacja wyników
Programiści mogą łatwo określać receptury JSReport do transformacji danych wyjściowych. Na przykład, korzystając z MiddlewareFilter i receptury ChromePdf, filtr ASP.NET przechwytuje wynik renderowania widoku i konwertuje go do formatu PDF. Ta funkcja jest szczególnie przydatna w aplikacjach opartych na ASP.NET.
2.1.4 Zgodność z instancjami zdalnymi
JSReport .NET płynnie integruje się ze zdalnymi instancjami JSReport. Jest to szczególnie korzystne w koordynowanych środowiskach Docker, gdzie JSReport działa w oddzielnym kontenerze. Taka integracja ułatwia koordynację aplikacji JSReport i .NET Core przy użyciu narzędzi takich jak Docker-compose.
2.1.5 Zaawansowana obsługa odpowiedzi
Hook OnAfterRender umożliwia manipulowanie nagłówkami odpowiedzi i innymi atrybutami. Ten hook może być również używany do zapisywania wyników w pliku, co zapewnia elastyczność w obsłudze odpowiedzi z procesu generowania raportów.
2.1.6 Niestandardowe nagłówki
JSReport .NET umożliwia definiowanie niestandardowych nagłówków PDF za pomocą widoków częściowych. Nagłówki te mogą być renderowane w czasie wykonywania wraz z główną treścią pliku PDF, zapewniając dodatkowe opcje dostosowywania podczas generowania raportów.
2.1.7 Renderowanie bez widoków MVC
Framework obsługuje renderowanie raportów z surowego kodu HTML, a nie tylko z widoków MVC. Ta funkcja zapewnia większą elastyczność w procesie generowania raportów, umożliwiając programistom bezpośrednie renderowanie treści HTML.
3. IronPDF
IronPDF to przydatna biblioteka dla aplikacji .NET, której celem jest ułatwienie pracy z plikami PDF. Jedną z jego głównych funkcji jest konwersja HTML do formatu PDF, co idealnie nadaje się do generowania raportów lub faktur ze stron internetowych. Działa wydajnie zarówno w aplikacjach po stronie serwera, jak i po stronie klienta, dzięki czemu nadaje się zarówno do projektów biznesowych, jak i do użytku osobistego.
IronPDF integruje się z wieloma różnymi środowiskami .NET, takimi jak ASP.NET, MVC, Windows Forms i WPF, płynnie współpracując zarówno z .NET Core, jak i .NET Framework. Obsługuje również Azure i inne usługi w chmurze, co jest dużym Plusem przy tworzeniu aplikacji opartych na chmurze.
3.1 Kluczowe funkcje IronPDF
3.1.1 Konwersja HTML do PDF
IronPDF doskonale radzi sobie z konwersją plików HTML na dokumenty PDF. Obsługuje HTML, CSS, JavaScript i obrazy bez żadnych problemów, dzięki czemu Twoje treści internetowe wyglądają idealnie w końcowym pliku PDF. Konwersja zachowuje układ i styl oryginalnego kodu HTML.
3.1.2 Integracja z ASP.NET
Integracja z ASP.NET przebiega płynnie, umożliwiając konwersję stron ASPX do formatu PDF bez konieczności pisania rozbudowanego kodu. Jest to szczególnie przydatne do tworzenia plików PDF z istniejących aplikacji internetowych.
3.1.3 Edycja i manipulacja
IronPDF umożliwia edycję istniejących plików PDF, np. poprzez dodawanie tekstu, obrazów i stron lub łączenie wielu plików PDF. Funkcje edycji są przyjazne dla użytkownika, więc do korzystania z nich nie jest wymagana specjalistyczna wiedza na temat plików PDF. Do plików PDF można również dodawać adnotacje, załączniki, konspekty i zakładki.
3.1.4 Wypełnianie i pobieranie formularzy
IronPDF obsługuje wypełnianie i wyodrębnianie danych z formularzy PDF, co jest niezbędne w aplikacjach obsługujących formularze. IronPDF usprawnia cały proces zarządzania danymi formularzy i obsługuje różne typy formularzy PDF, co zwiększa jego elastyczność.
3.1.5 Funkcje bezpieczeństwa
IronPDF zawiera funkcje bezpieczeństwa, takie jak ochrona hasłem i ustawianie uprawnień do dokumentów PDF, które są kluczowe dla ochrony poufnych informacji. Obejmuje to funkcje szyfrowania i deszyfrowania, co stanowi dodatkową warstwę zabezpieczeń dla plików PDF.
3.1.6 Konfigurowalne renderowanie
Masz szerokie możliwości kontroli nad sposobem renderowania plików PDF, takie jak konfigurowanie niestandardowych nagłówków i stopek, dostosowywanie marginesów stron oraz wybieranie konkretnych fragmentów kodu HTML do konwersji. Dzięki tej personalizacji Twoje pliki PDF będą wyglądały dokładnie tak, jak chcesz.
3.1.7 Zaawansowane funkcje plików PDF
IronPDF obsługuje zgodność z formatem PDF/A i podpisy cyfrowe, a także funkcje OCR, dzięki czemu może konwertować zeskanowane dokumenty i obrazy na pliki PDF z możliwością wyszukiwania i edycji. Te funkcje są idealne dla bardziej złożonych projektów.
3.1.8 Łatwe wdrożenie
Konfiguracja IronPDF jest prosta; Nie wymaga żadnych dodatkowych instalacji ani zależności. Jest lekki, dzięki czemu nie wpływa negatywnie na wydajność aplikacji. Plus jest regularnie aktualizowany, aby nadążać za najnowszymi osiągnięciami technologii .NET, zapewniając rozwiązanie w formacie PDF, które pozostaje aktualne.
4. Tworzenie projektu .NET
4.1 Rozpoczynanie nowego projektu
Otwórz program Visual Studio i rozpocznij nowy projekt, klikając przycisk "Utwórz nowy projekt".

Następnie wybierz opcję "Aplikacja konsolowa", "Aplikacja .NET Core" lub inną opcję, która odpowiada Twoim potrzebom.

4.2 Konfiguracja projektu
Musisz nadać nazwę swojemu projektowi. Znajdź pole tekstowe przeznaczone na nazwę projektu i wpisz wybraną nazwę. Wybierz lokalizację dla swojego projektu, wskazując ścieżkę, w której chcesz go zapisać. Po wprowadzeniu tych danych kliknij przycisk "Utwórz", aby kontynuować.

4.3 Wybór platformy .NET Framework
Kolejnym krokiem jest wybór odpowiedniego .NET Framework dla Twojego projektu. Wybór ten zależy od wymagań projektu i kompatybilności. Następnie kliknij przycisk "Utwórz".

5. Zainstaluj bibliotekę IronPDF
5.1 Using the NuGet Package Manager
Aby zainstalować IronPDF za pomocą menedżera pakietów NuGet w Visual Studio, wykonaj następujące czynności:
- Otwórz swój projekt w Visual Studio.
-
Kliknij menu "Narzędzia", wybierz "Menedżer pakietów NuGet", a następnie wybierz "Zarządzaj pakietami NuGet dla rozwiązania".

- W menedżerze pakietów NuGet kliknij kartę "Przeglądaj".
- Wyszukaj "IronPDF".
-
Po znalezieniu pakietu IronPDF wybierz go i kliknij "Zainstaluj".

- Postępuj zgodnie z instrukcjami, aby zakończyć instalację.
5.2 Using the Visual Studio Command Line
Jeśli wolisz korzystać z wiersza poleceń, możesz zainstalować IronPDF w Visual Studio w następujący sposób:
- Otwórz program Visual Studio.
- Przejdź do menu "Narzędzia", najedź kursorem na "Menedżer pakietów NuGet", a następnie wybierz "Konsola menedżera pakietów" z menu bocznego.
-
W konsoli wpisz następujące polecenie:
Install-Package IronPdf
-
Naciśnij klawisz Enter, aby wykonać polecenie, i poczekaj na zakończenie instalacji.

5.3 Direct Download from the NuGet Webpage
IronPDF można również pobrać bezpośrednio ze strony NuGet:
- Odwiedź oficjalną stronę NuGet.
-
Użyj paska wyszukiwania, aby znaleźć pakiet IronPDF.

- Na stronie pakietu IronPDF dostępne są opcje bezpośredniego pobrania pakietu.
-
Pobierz plik .nupkg i dodaj go ręcznie do swojego projektu.

6. Zainstaluj JSReport
6.1 Korzystanie z menedżera pakietów NuGet w Visual Studio
Aby uruchomić JSReport za pomocą menedżera pakietów NuGet w Visual Studio, przejdź do menu "Narzędzia" i wybierz opcję "Zarządzaj pakietami NuGet". Spowoduje to otwarcie interfejsu menedżera pakietów NuGet. W menedżerze pakietów NuGet można wyszukać jsreport.Local lub jsreport.Binary, w zależności od wymagań projektu.

Oto główne pakiety służące do integracji JSReport z aplikacją .NET. Po znalezieniu odpowiedniego pakietu kliknij "Zainstaluj", aby dodać go do swojego projektu. Ten proces automatycznie pobierze i odwoła się do pakietu w Twoim projekcie, przygotowując go do użycia.
6.2 Korzystanie z konsoli menedżera pakietów NuGet
Alternatywnie można zainstalować JSReport za pomocą konsoli menedżera pakietów NuGet w programie Visual Studio. Otwórz konsolę menedżera pakietów NuGet z menu "Narzędzia", wybierając "Menedżer pakietów NuGet", a następnie "Konsola menedżera pakietów".

W konsoli należy uruchomić określone polecenie, aby zainstalować pakiet JSReport. Jeśli chcesz zainstalować pakiet jsreport.Local, użyj polecenia Install-Package jsreport.Local. W przypadku pakietu jsreport.Binary polecenie brzmiałoby: Install-Package jsreport.Binary. Wykonanie tych poleceń w konsoli menedżera pakietów spowoduje pobranie i dodanie odpowiedniego pakietu JSReport do projektu.

7. Porównanie funkcji konwersji HTML do PDF w IronPDF i JSReport
7.1 Konwersja HTML do PDF w IronPDF
IronPDF to czołowa biblioteka do konwersji HTML na PDF, znana z łatwości obsługi i wysokiej wydajności. Obsługuje zaawansowane funkcje, takie jak renderowanie CSS, wykonywanie kodu JavaScript oraz niestandardowe nagłówki i stopki, co zwiększa jego możliwości tworzenia doskonałych plików PDF na podstawie źródeł HTML. IronPDF oferuje trzy metody konwersji HTML do PDF:
- Ciąg znaków HTML do formatu PDF
- Plik HTML do PDF
- URL do PDF
Omówmy te metody osobno.
7.1.1 Ciąg znaków HTML do pliku PDF
Ta funkcja pozwala na konwersję treści HTML bezpośrednio z ciągu znaków, co jest szczególnie przydatne w przypadku treści HTML generowanych lub modyfikowanych dynamicznie w ramach aplikacji. Po przekazaniu ciągu znaków HTML do IronPDF jest on renderowany jako plik PDF.
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// HTML string to be converted
string htmlString = @"
<html>
<head>
<title>Example HTML</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is an HTML string converted to PDF using IronPDF.</p>
</body>
</html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
// Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// HTML string to be converted
string htmlString = @"
<html>
<head>
<title>Example HTML</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is an HTML string converted to PDF using IronPDF.</p>
</body>
</html>";
// Convert HTML string to PDF
var pdfDocument = renderer.RenderHtmlAsPdf(htmlString);
// Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf");
Imports IronPdf
' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()
' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"
' HTML string to be converted
Dim htmlString As String = "
<html>
<head>
<title>Example HTML</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>This is an HTML string converted to PDF using IronPDF.</p>
</body>
</html>"
' Convert HTML string to PDF
Dim pdfDocument = renderer.RenderHtmlAsPdf(htmlString)
' Save the rendered PDF document
pdfDocument.SaveAs("HtmlStringToPdf.pdf")
7.1.2 Plik HTML do PDF
Ta metoda konwertuje istniejący plik HTML na PDF, co jest przydatne w przypadku statycznych plików HTML, które wymagają prezentacji lub dystrybucji w formacie PDF. Podaj ścieżkę do pliku HTML, a IronPDF zajmie się konwersją.
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// Convert HTML file to PDF
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
// Save the PDF document
pdfDocument.SaveAs("Invoice.pdf");
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// Convert HTML file to PDF
var pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html");
// Save the PDF document
pdfDocument.SaveAs("Invoice.pdf");
Imports IronPdf
' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()
' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"
' Convert HTML file to PDF
Dim pdfDocument = renderer.RenderHtmlFileAsPdf("invoice.html")
' Save the PDF document
pdfDocument.SaveAs("Invoice.pdf")
7.1.3 URL do PDF
Ta funkcja konwertuje całą stronę internetową do formatu PDF na podstawie jej adresu URL, co jest przydatne do uchwycenia aktualnego stanu strony, w tym stylów, obrazów i innych zasobów. IronPDF załaduje stronę internetową z podanego adresu URL i przekształci ją w dokument PDF, odtwarzając układ i treść w sposób jak najbardziej wierny.
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
// Convert webpage to PDF
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
// Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf");
using IronPdf;
// Initialize the ChromePdfRenderer
var renderer = new ChromePdfRenderer();
// License key setup
IronPdf.License.LicenseKey = "Your-License-Key";
// Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2;
// Convert webpage to PDF
var pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/");
// Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf");
Imports IronPdf
' Initialize the ChromePdfRenderer
Private renderer = New ChromePdfRenderer()
' License key setup
IronPdf.License.LicenseKey = "Your-License-Key"
' Set the Paper Size
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A2
' Convert webpage to PDF
Dim pdfDocument = renderer.RenderUrlAsPdf("https://dotnet.microsoft.com/")
' Save the PDF document
pdfDocument.SaveAs("UrlToPdf.pdf")
7.2 Konwersja JSReport C# HTML do PDF
Proces konwersji HTML do PDF w JSReport obejmuje kilka etapów, często w tym konfigurację serwera JSReport lub korzystanie z jego internetowego API. Typowa implementacja w języku C# może wyglądać następująco:
using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
var report = new LocalReporting()
.UseBinary(JsReportBinary.GetBinary())
.AsUtility()
.Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
Template = new Template()
{
Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
Engine = Engine.None,
Recipe = Recipe.ChromePdf
},
Options = new RenderOptions()
{
Debug = new DebugOptions() { Preview = true }
}
});
var stream = new MemoryStream();
reportResult.Content.CopyTo(stream);
stream.Position = 0;
return File(stream, "application/pdf", "Report.pdf");
}
using JsReport.AspNetCore;
using JsReport.Types;
using System.Threading.Tasks;
public async Task<IActionResult> GeneratePdf()
{
var report = new LocalReporting()
.UseBinary(JsReportBinary.GetBinary())
.AsUtility()
.Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
Template = new Template()
{
Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
Engine = Engine.None,
Recipe = Recipe.ChromePdf
},
Options = new RenderOptions()
{
Debug = new DebugOptions() { Preview = true }
}
});
var stream = new MemoryStream();
reportResult.Content.CopyTo(stream);
stream.Position = 0;
return File(stream, "application/pdf", "Report.pdf");
}
Imports JsReport.AspNetCore
Imports JsReport.Types
Imports System.Threading.Tasks
Public Async Function GeneratePdf() As Task(Of IActionResult)
Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).AsUtility().Create()
Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
.Template = New Template() With {
.Content = "<html><body><h1>Example HTML</h1><p>This is converted to PDF using JSReport.</p></body></html>",
.Engine = Engine.None,
.Recipe = Recipe.ChromePdf
},
.Options = New RenderOptions() With {
.Debug = New DebugOptions() With {.Preview = True}
}
})
Dim stream = New MemoryStream()
reportResult.Content.CopyTo(stream)
stream.Position = 0
Return File(stream, "application/pdf", "Report.pdf")
End Function
Aby zapoznać się z innymi przykładami JSReport .NET, odwiedź poniższy link.
7.3. Renderowanie Bootstrap i nowoczesnych frameworków CSS
Nowoczesne aplikacje internetowe tworzone przy użyciu frameworków CSS, takich jak Bootstrap, wymagają narzędzi do generowania plików PDF, które dokładnie zachowują układy frameworków i elementy responsywnego projektowania.
IronPDF: Complete Bootstrap and Framework Support
Silnik renderujący Chromium firmy IronPDF zapewnia kompleksową obsługę wszystkich nowoczesnych frameworków CSS:
- Bootstrap 5: Full flexbox and CSS Grid with all responsive utilities
- Bootstrap 4: Kompletne systemy kart, nawigacja, komponenty formularzy
- Tailwind CSS: All utility classes and responsive modifiers
- Foundation: Complete grid and component systems
- Modern CSS3: Flexbox, Grid, custom properties, animations, transforms
Validated with production examples: Bootstrap homepage and Bootstrap templates convert with pixel-perfect accuracy.
Przykład kodu: Tabela porównawcza funkcji z wykorzystaniem Bootstrap
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapComparison = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Feature Comparison</h1>
<div class='table-responsive'>
<table class='table table-bordered table-hover'>
<thead class='table-primary'>
<tr>
<th style='width: 30%'>Feature</th>
<th style='width: 35%' class='text-center'>IronPDF</th>
<th style='width: 35%' class='text-center'>Alternative</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>HTML5 Support</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Modern web standards</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Basic HTML only</p>
</td>
</tr>
<tr>
<td><strong>CSS3 & Flexbox</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Chromium engine</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>Limited</span>
<p class='text-muted small mb-0 mt-2'>No flexbox/grid</p>
</td>
</tr>
<tr>
<td><strong>JavaScript Execution</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>V8 engine</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Limited execution</p>
</td>
</tr>
<tr>
<td><strong>Bootstrap 5</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>All components</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>No Support</span>
<p class='text-muted small mb-0 mt-2'>Bootstrap 3 only</p>
</td>
</tr>
<tr class='table-secondary'>
<td><strong>Deployment</strong></td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-primary'>On-Premises</span>
<span class='badge bg-primary'>Cloud</span>
<span class='badge bg-primary'>Offline</span>
</div>
</td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-secondary'>Server Only</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class='alert alert-info mt-4 d-flex align-items-start'>
<svg class='bi flex-shrink-0 me-2 mt-1' width='20' height='20'></svg>
<div>
<strong>Note:</strong> IronPDF's Chromium engine ensures that modern web applications convert to PDF with browser-accurate fidelity, preserving all CSS frameworks and responsive designs.
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapComparison);
pdf.SaveAs("feature-comparison.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
string bootstrapComparison = @"
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Feature Comparison</h1>
<div class='table-responsive'>
<table class='table table-bordered table-hover'>
<thead class='table-primary'>
<tr>
<th style='width: 30%'>Feature</th>
<th style='width: 35%' class='text-center'>IronPDF</th>
<th style='width: 35%' class='text-center'>Alternative</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>HTML5 Support</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Modern web standards</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Basic HTML only</p>
</td>
</tr>
<tr>
<td><strong>CSS3 & Flexbox</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Chromium engine</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>Limited</span>
<p class='text-muted small mb-0 mt-2'>No flexbox/grid</p>
</td>
</tr>
<tr>
<td><strong>JavaScript Execution</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>V8 engine</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Limited execution</p>
</td>
</tr>
<tr>
<td><strong>Bootstrap 5</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>All components</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>No Support</span>
<p class='text-muted small mb-0 mt-2'>Bootstrap 3 only</p>
</td>
</tr>
<tr class='table-secondary'>
<td><strong>Deployment</strong></td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-primary'>On-Premises</span>
<span class='badge bg-primary'>Cloud</span>
<span class='badge bg-primary'>Offline</span>
</div>
</td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-secondary'>Server Only</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class='alert alert-info mt-4 d-flex align-items-start'>
<svg class='bi flex-shrink-0 me-2 mt-1' width='20' height='20'></svg>
<div>
<strong>Note:</strong> IronPDF's Chromium engine ensures that modern web applications convert to PDF with browser-accurate fidelity, preserving all CSS frameworks and responsive designs.
</div>
</div>
</div>
</body>
</html>";
var pdf = renderer.RenderHtmlAsPdf(bootstrapComparison);
pdf.SaveAs("feature-comparison.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim bootstrapComparison As String = "
<!DOCTYPE html>
<html>
<head>
<link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'>
</head>
<body>
<div class='container my-5'>
<h1 class='text-center mb-5'>Feature Comparison</h1>
<div class='table-responsive'>
<table class='table table-bordered table-hover'>
<thead class='table-primary'>
<tr>
<th style='width: 30%'>Feature</th>
<th style='width: 35%' class='text-center'>IronPDF</th>
<th style='width: 35%' class='text-center'>Alternative</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>HTML5 Support</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Modern web standards</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Basic HTML only</p>
</td>
</tr>
<tr>
<td><strong>CSS3 & Flexbox</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>Chromium engine</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>Limited</span>
<p class='text-muted small mb-0 mt-2'>No flexbox/grid</p>
</td>
</tr>
<tr>
<td><strong>JavaScript Execution</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>V8 engine</p>
</td>
<td class='text-center'>
<span class='badge bg-warning fs-6'>Partial</span>
<p class='text-muted small mb-0 mt-2'>Limited execution</p>
</td>
</tr>
<tr>
<td><strong>Bootstrap 5</strong></td>
<td class='text-center'>
<span class='badge bg-success fs-6'>Full Support</span>
<p class='text-muted small mb-0 mt-2'>All components</p>
</td>
<td class='text-center'>
<span class='badge bg-danger fs-6'>No Support</span>
<p class='text-muted small mb-0 mt-2'>Bootstrap 3 only</p>
</td>
</tr>
<tr class='table-secondary'>
<td><strong>Deployment</strong></td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-primary'>On-Premises</span>
<span class='badge bg-primary'>Cloud</span>
<span class='badge bg-primary'>Offline</span>
</div>
</td>
<td class='text-center'>
<div class='d-flex justify-content-center gap-2 flex-wrap'>
<span class='badge bg-secondary'>Server Only</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<div class='alert alert-info mt-4 d-flex align-items-start'>
<svg class='bi flex-shrink-0 me-2 mt-1' width='20' height='20'></svg>
<div>
<strong>Note:</strong> IronPDF's Chromium engine ensures that modern web applications convert to PDF with browser-accurate fidelity, preserving all CSS frameworks and responsive designs.
</div>
</div>
</div>
</body>
</html>"
Dim pdf = renderer.RenderHtmlAsPdf(bootstrapComparison)
pdf.SaveAs("feature-comparison.pdf")
Wynik: profesjonalna tabela porównawcza funkcji z stylizacją tabel Bootstrap, znacznikami, responsywnym układem i komponentami alertów — wszystko dokładnie odwzorowane w formacie PDF.
JSReport .NET: oparty na szablonach z ograniczoną obsługą Bootstrap
JSReport wykorzystuje podejście oparte na szablonach z różnymi silnikami renderującymi w zależności od wybranej receptury:
- Chrome PDF Recipe: Wykorzystuje Puppeteer/Chrome w trybie headless, dobra obsługa Bootstrap
- Phantom JS Recipe: starszy silnik WebKit z ograniczoną obsługą nowoczesnego CSS
- Przepis wkhtmltopdf: silnik Qt WebKit (przestarzały, bez flexbox/grid)
- Złożoność szablonów: Wymaga opanowania składni szablonów JSReport
- Zależność od serwera: Wymaga instalacji i zarządzania serwerem JSReport
Kluczowe kwestie dotyczące JSReport z Bootstrap:
- Wybór receptury: Obsługa Bootstrap różni się znacznie w zależności od wyboru receptury
- Chrome PDF Recipe: Najlepsza opcja dla Bootstrap, ale zwiększa złożoność i liczbę zależności
- Krzywa uczenia się szablonów: Konieczna znajomość składni szablonów Handlebars/JSRender
- Zarządzanie serwerem: Wymaga utrzymania instancji serwera JSReport
- Złożoność procesu: wieloetapowy proces szablon → dane → renderowanie
Wpływ na rozwój: Chociaż przepis JSReport na pliki PDF w przeglądarce Chrome dobrze radzi sobie z Bootstrapem, ogólna złożoność jest większa:
- Proces oparty na szablonach a bezpośrednia konwersja HTML
- Wymagania dotyczące infrastruktury serwerowej a biblioteka działająca w ramach procesu
- Krzywa uczenia się składni szablonów w porównaniu ze standardowym HTML
- Złożoność konfiguracji receptury a proste API
W przypadku aplikacji wymagających prostej konwersji HTML do PDF z obsługą Bootstrap, bezpośrednie podejście IronPDF zapewnia prostszą integrację i mniej zmiennych elementów.
For Bootstrap framework best practices, see the Bootstrap & Flexbox CSS Guide.
8. Elastyczność i zaawansowane funkcje
8.1 Zaawansowane funkcje i możliwości dostosowywania IronPDF
IronPDF wyróżnia się zaawansowanymi funkcjami i wysokim stopniem dostosowania, zaspokajając różnorodne potrzeby związane z obróbką plików PDF. Najważniejsze zaawansowane funkcje obejmują:
Zgodność z PDF/A
IronPDF obsługuje format PDF/A, niezbędny do długoterminowej archiwizacji i zgodności z normami branżowymi. Zgodność z tymi wymaganiami ma szczególne znaczenie w sektorach prawnym, finansowym i rządowym, gdzie integralność dokumentów w czasie ma kluczowe znaczenie.
using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
using IronPdf;
// Create a PdfDocument object or open any PDF File
PdfDocument pdf = PdfDocument.FromFile("wikipedia.pdf");
// Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3);
Imports IronPdf
' Create a PdfDocument object or open any PDF File
Private pdf As PdfDocument = PdfDocument.FromFile("wikipedia.pdf")
' Use the SaveAsPdfA method to save to file
pdf.SaveAsPdfA("pdf-a3-wikipedia.pdf", PdfAVersions.PdfA3)
Edycja, scalanie i dzielenie plików PDF
IronPDF umożliwia edycję istniejących plików PDF, łączenie wielu plików PDF w jeden oraz dzielenie plików PDF na osobne dokumenty. Ta funkcja jest szczególnie przydatna w sytuacjach, gdy duże dokumenty trzeba podzielić na mniejsze części w celu łatwiejszego rozpowszechniania lub gdy trzeba połączyć różne sekcje z różnych dokumentów.
Funkcje bezpieczeństwa
IronPDF zawiera solidne funkcje bezpieczeństwa, takie jak ochrona hasłem, szyfrowanie oraz możliwość ustawiania uprawnień użytkowników. IronPDF obsługuje szyfrowanie plików PDF, zapewniając dodatkową warstwę bezpieczeństwa i chroniąc zawartość przed zmianami lub kopiowaniem.
using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// Make a PDF read-only and disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
// Save the protected PDF
pdfDoc.SaveAs("InvoiceProtected.pdf");
using IronPdf;
// Open a PDF File
var pdfDoc = PdfDocument.FromFile("invoice.pdf");
// Make a PDF read-only and disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption();
pdfDoc.SecuritySettings.AllowUserAnnotations = false;
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = false;
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdfDoc.SecuritySettings.AllowUserFormData = false;
// Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen"; // password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare"; // password to open the pdf
// Save the protected PDF
pdfDoc.SaveAs("InvoiceProtected.pdf");
Imports IronPdf
' Open a PDF File
Private pdfDoc = PdfDocument.FromFile("invoice.pdf")
' Make a PDF read-only and disallow copy & paste and printing
pdfDoc.SecuritySettings.RemovePasswordsAndEncryption()
pdfDoc.SecuritySettings.AllowUserAnnotations = False
pdfDoc.SecuritySettings.AllowUserCopyPasteContent = False
pdfDoc.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdfDoc.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdfDoc.SecuritySettings.AllowUserFormData = False
' Change or set the document encryption password
pdfDoc.SecuritySettings.OwnerPassword = "passForOpen" ' password to edit the pdf
pdfDoc.SecuritySettings.UserPassword = "onlyForShare" ' password to open the pdf
' Save the protected PDF
pdfDoc.SaveAs("InvoiceProtected.pdf")
Kontrola nagłówków i stopek
Programiści mogą z łatwością dodawać niestandardowe nagłówki i stopki do swoich dokumentów PDF, co jest niezbędne do tworzenia profesjonalnie wyglądających raportów, faktur i innych dokumentów biznesowych. Obejmuje to możliwość dodawania numerów stron, dat i tekstu niestandardowego.
Konwersja plików PDF na obrazy
IronPDF umożliwia konwersję stron PDF na obrazy. Ta funkcja jest szczególnie przydatna w sytuacjach, gdy trzeba wyświetlić zawartość pliku PDF jako obrazy w aplikacjach internetowych lub do generowania miniatur.
using IronPdf;
using IronSoftware.Drawing;
// Load the PDF document
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Extract specific dimensions or page ranges
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
using IronPdf;
using IronSoftware.Drawing;
// Load the PDF document
var pdf = PdfDocument.FromFile("Example.pdf");
// Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles(@"C:\image\folder\*.png");
// Extract specific dimensions or page ranges
pdf.RasterizeToImageFiles(@"C:\image\folder\example_pdf_image_*.jpg", 100, 80);
// Extract all pages as AnyBitmap objects
AnyBitmap [] pdfBitmaps = pdf.ToBitmap();
Imports IronPdf
Imports IronSoftware.Drawing
' Load the PDF document
Private pdf = PdfDocument.FromFile("Example.pdf")
' Extract all pages to a folder as PNG image files
pdf.RasterizeToImageFiles("C:\image\folder\*.png")
' Extract specific dimensions or page ranges
pdf.RasterizeToImageFiles("C:\image\folder\example_pdf_image_*.jpg", 100, 80)
' Extract all pages as AnyBitmap objects
Dim pdfBitmaps() As AnyBitmap = pdf.ToBitmap()
8.2 Zaawansowane funkcje i rozszerzalność JSReport .NET
JSReport .NET słynie z zaawansowanych funkcji i możliwości rozbudowy, co czyni go wszechstronnym narzędziem do generowania raportów. Jego kluczowe cechy to:
Dynamiczne generowanie raportów
Obsługuje różne silniki szablonów, w tym Handlebars i EJS, ułatwiając tworzenie skomplikowanych i elastycznych projektów raportów. Ta kompatybilność z wieloma silnikami pozwala na szeroki zakres możliwości projektowych, dostosowując się do różnych wymagań i stopni złożoności przy tworzeniu raportów.
var report = new LocalReporting()
.UseBinary(JsReportBinary.GetBinary())
.RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
.KillRunningJsReportProcesses()
.Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
.AsUtility()
.Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
Template = new Template()
{
Content = "{{{message}}}",
Engine = Engine.Handlebars,
Recipe = Recipe.ChromePdf
},
Data = new
{
message = "PDF Generation with JSReport .NET"
}
});
var report = new LocalReporting()
.UseBinary(JsReportBinary.GetBinary())
.RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport"))
.KillRunningJsReportProcesses()
.Configure(cfg => cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory())
.AsUtility()
.Create();
var reportResult = await report.RenderAsync(new RenderRequest()
{
Template = new Template()
{
Content = "{{{message}}}",
Engine = Engine.Handlebars,
Recipe = Recipe.ChromePdf
},
Data = new
{
message = "PDF Generation with JSReport .NET"
}
});
Dim report = (New LocalReporting()).UseBinary(JsReportBinary.GetBinary()).RunInDirectory(Path.Combine(Directory.GetCurrentDirectory(), "jsreport")).KillRunningJsReportProcesses().Configure(Function(cfg) cfg.AllowLocalFilesAccess().FileSystemStore().BaseUrlAsWorkingDirectory()).AsUtility().Create()
Dim reportResult = Await report.RenderAsync(New RenderRequest() With {
.Template = New Template() With {
.Content = "{{{message}}}",
.Engine = Engine.Handlebars,
.Recipe = Recipe.ChromePdf
},
.Data = New With {Key .message = "PDF Generation with JSReport .NET"}
})
Silniki szablonów
JSReport .NET oferuje funkcje planowania i automatyzacji generowania raportów, idealne do regularnych potrzeb, takich jak codzienne lub miesięczne podsumowania. Ta funkcja zapewnia terminowe dostarczanie raportów i może być zintegrowana z procesami biznesowymi w celu generowania raportów wyzwalanych zdarzeniami.
Rozszerzalność dzięki skryptom niestandardowym
JSReport C# umożliwia rozszerzenie swoich możliwości poprzez skrypty niestandardowe, wzbogacając funkcjonalność o takie elementy, jak niestandardowe przetwarzanie danych lub specjalistyczne formatowanie. Ta rozszerzalność ma kluczowe znaczenie dla tworzenia raportów dostosowanych do konkretnej logiki biznesowej i wymagań dotyczących przetwarzania danych.
9. Pomoc techniczna
9.1 Jakość i dostępność dokumentacji IronPDF
Dokumentacja IronPDF jest wyczerpująca i przyjazna dla użytkownika, dostosowana zarówno do potrzeb początkujących, jak i doświadczonych programistów. Zawiera szczegółowe przewodniki, Dokumentację API oraz bogaty zbiór przykładów kodu, co ułatwia programistom zrozumienie i wdrożenie funkcji biblioteki w wielu językach, takich jak C# i Node.
Dokumentacja ma przejrzystą strukturę i jest regularnie aktualizowana, odzwierciedlając najnowsze funkcje i najlepsze praktyki. Ponadto strona internetowa IronPDF zawiera przewodniki szybkiego startu i sekcję FAQ, które są szczególnie pomocne dla osób początkujących w zakresie obróbki plików PDF w środowisku .NET.
IronPDF posiada również platformę online, na której można wypróbować funkcjonalność IronPDF bez konieczności pobierania kodu. Zapoznaj się z nim, korzystając z poniższego linku.
9.1.1 Opcje pomocy technicznej
IronPDF oferuje kilka opcji wsparcia, w tym dedykowany zespół wsparcia zajmujący się zapytaniami i problemami technicznymi. Firma zapewnia wsparcie e-mail i aktywnie uczestniczy w forach programistów, oferując rozwiązania i porady. Można również skontaktować się z przedstawicielem pomocy technicznej na żywo, korzystając z opcji Live Support na stronie internetowej.
9.2 Jakość i dostępność dokumentacji JSReport .NET
JSReport .NET szczyci się obszerną i dobrze utrzymaną dokumentacją. Dokumentacja obejmuje szeroki zakres tematów, od podstawowej konfiguracji po zaawansowane scenariusze użytkowania, wraz z fragmentami kodu i przykładami implementacji. Tekst jest uporządkowany logicznie, co ułatwia nawigację i wyszukiwanie odpowiednich informacji. Zasoby online obejmują również obszerny Dokumentacja API, zapewniający programistom dostęp do szczegółowych informacji na temat możliwości narzędzia.
9.2.1 Opcje pomocy technicznej
JSReport .NET oferuje szereg opcji wsparcia. Firma dysponuje dedykowanym zespołem wsparcia, z którym można skontaktować się za pośrednictwem poczty elektronicznej, a także aktywnie działa na platformie GitHub, udostępniając miejsce do zgłaszania problemów i wniosków dotyczących nowych funkcji.
10. Modele licencyjne
10.1 Licencja IronPDF

IronPDF oferuje trzy różne opcje cenowe, dostosowane do różnych poziomów użytkowania i wymagań budżetowych:
Lite Edition: Priced at $799, this is a one-time fee for cloud deployment. Jest przeznaczony dla mniejszych projektów lub zespołów, które dopiero zaczynają przygodę z przetwarzaniem plików PDF.
Professional Edition: At $1,199, also a one-time cloud deployment fee, this edition is suitable for professional developers who require more advanced features and capabilities.
Unlimited Edition: The most comprehensive package, priced at $2,399, is a one-time fee for cloud deployment. Idealnie nadaje się do użytku w dużych przedsiębiorstwach Enterprise, oferując rozbudowane funkcje i brak ograniczeń w użytkowaniu.
10.2 Licencja JSReport .NET

JSReport .NET oferuje elastyczne opcje licencyjne, w tym zarówno licencje subskrypcyjne, jak i Licencje wieczyste:
Licencja bezpłatna: Oferuje w pełni funkcjonalną instancję ograniczoną do maksymalnie 5 szablonów raportów. Nie wymaga klucza licencyjnego i nadaje się do małych projektów lub do celów ewaluacyjnych.
Subskrypcja Enterprise: W cenie 395 USD rocznie plan ten zapewnia w pełni funkcjonalną pojedynczą instancję JSReport bez żadnych ograniczeń i obejmuje aktualizacje. Jest to idealne rozwiązanie dla indywidualnych przedsiębiorstw potrzebujących solidnego rozwiązania do raportowania.
Subskrypcja na skalę przedsiębiorstwa: Ten plan, kosztujący 1295 USD rocznie, najlepiej nadaje się do wdrożeń na dużą skalę, oferując pojedynczy klucz licencyjny ważny dla nieograniczonej liczby instancji. Plan ten obejmuje aktualizacje i jest bez opłat licencyjnych, dzięki czemu nadaje się dla organizacji korzystających z wielu instancji lub wdrażających go jako część innego produktu dla wielu klientów.
11. Conclusion
Podsumowując, chociaż zarówno IronPDF, jak i JSReport .NET są wartościowe w swoich dziedzinach, IronPDF ma niewielką przewagę ze względu na swoje wszechstronne możliwości manipulacji plikami PDF. Wyróżnia się w takich obszarach, jak zgodność z PDF/A, zaawansowana edycja i funkcje bezpieczeństwa, co czyni go bardziej wszechstronnym narzędziem do szczegółowej obsługi plików PDF w środowiskach .NET. JSReport .NET, dzięki swoim zaletom w zakresie dynamicznego generowania raportów i szablonów, jest bardzo skuteczny w zadaniach związanych z raportowaniem. Jednak w większości scenariuszy wymagających szczegółowego i zróżnicowanego przetwarzania oraz manipulacji plikami PDF, IronPDF okazuje się bardziej korzystnym wyborem.
IronPDF oferuje bezpłatną licencję dla programistów oraz bezpłatną wersję próbną. Firma Iron Software oferuje kompleksowy pakiet znany jako Iron Suite. Pakiet ten, obejmujący IronBarcode, IronXL, IronQR, IronOCR, IronPDF i IronWebscraper, jest oferowany w cenie dwóch programów, co stanowi znaczną wartość dodaną dla programistów poszukujących szerokiego zakresu funkcjonalności.
Ostatecznie wybór między tymi dwoma rozwiązaniami zależy od konkretnych potrzeb i środowiska projektu lub programisty.
Często Zadawane Pytania
Jak mogę przekonwertować HTML na PDF w aplikacji .NET?
Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na dokumenty PDF. Dodatkowo biblioteka IronPDF obsługuje konwersję całych plików HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.
Jakie są zalety korzystania z IronPDF do integracji z ASP.NET?
IronPDF płynnie integruje się z ASP.NET, umożliwiając programistom konwersję stron ASPX do formatu PDF przy minimalnym nakładzie pracy programistycznej. Integracja ta jest szczególnie przydatna przy generowaniu raportów PDF z istniejących aplikacji internetowych.
Czy IronPDF obsługuje funkcje zabezpieczeń plików PDF?
Tak, IronPDF zawiera solidne funkcje bezpieczeństwa, takie jak ochrona hasłem, szyfrowanie i ustawianie uprawnień do dokumentów PDF, które są kluczowe dla ochrony poufnych informacji.
Jakie cechy sprawiają, że IronPDF nadaje się do konwersji HTML na PDF?
IronPDF słynie z łatwości obsługi i wysokiej wydajności w konwersji HTML do PDF. Obsługuje zaawansowane funkcje, takie jak renderowanie CSS, wykonywanie kodu JavaScript oraz niestandardowe nagłówki i stopki.
Jakie są kluczowe funkcje JSReport SDK dla .NET Core?
JSReport SDK dla .NET Core oferuje takie funkcje, jak filtry middleware do konwersji wyników widoku MVC, kompatybilność z instancjami zdalnymi, zaawansowaną obsługę odpowiedzi za pomocą haka OnAfterRender oraz możliwość renderowania raportów z surowego kodu HTML.
W jaki sposób JSReport usprawnia generowanie raportów za pomocą szablonów?
JSReport obsługuje różne silniki szablonów, umożliwiając tworzenie skomplikowanych i elastycznych projektów raportów. Oferuje również funkcje takie jak planowanie i automatyzacja regularnego generowania raportów, co zwiększa wydajność.
Jakie są zalety korzystania z JSReport w środowiskach Docker?
JSReport .NET skutecznie integruje się ze zdalnymi instancjami JSReport, co jest korzystne w środowiskach Docker, gdzie JSReport działa w oddzielnym kontenerze. Taka konfiguracja ułatwia wydajną koordynację z aplikacjami .NET Core.
Jakie opcje licencyjne są dostępne dla IronPDF?
IronPDF oferuje kilka opcji licencyjnych: wersję Lite Edition dla mniejszych projektów, wersję Professional Edition z zaawansowanymi funkcjami oraz wersję Unlimited Edition do użytku w dużych przedsiębiorstwach, dostosowaną do różnych potrzeb projektowych.



