Przejdź do treści stopki
PORóWNANIA PRODUKTóW

Porównania produktów z IronPDF

Artykuł ten został napisany przez Jeffa Fritza, uznanego autorytetu w dziedzinie programowania w środowisku .NET.

W tym artykule Jeff dokonuje przeglądu i porównania biblioteki IronPDF z trzema innymi wiodącymi bibliotekami PDF dla C#.NET: Aspose, Syncfusion i iTextPdf


Analizuję całość doświadczeń programistów związanych z korzystaniem z trzech komercyjnych produktów do zarządzania plikami PDF dla programistów i porównuję je z doświadczeniami związanymi z IronPDF. Porównamy i ocenimy każdy produkt w następujących obszarach:

  1. Doświadczenie w zakresie odkrywania i pozyskiwania
  2. Przejrzystość licencji
  3. Kompatybilność
  4. Doświadczenie w zakresie "Pierwszych kroków"
  5. Łatwość korzystania z API dla programisty C#
  6. Jakość dokumentacji, w tym przykładów kodu i samouczków
  7. Funkcje konwersji HTML do PDF
    1. Zgodność z CSS3
    2. Zgodność z HTML 5
    3. Zgodność z JavaScript
    4. Obsługa formularzy generowania
    5. Wierność oddania treści
  8. Pomoc techniczna
  9. Częstotliwość wydawania aktualizacji i rozwój funkcji

Na zakończenie przedstawimy końcową kartę wyników dla tych narzędzi.

Odkrywanie i pozyskiwanie

Programiści mają do wyboru szeroki wachlarz produktów do obsługi plików PDF. Jak mogą oni rozróżnić produkty i wybrać ten właściwy dla swojego projektu? Programiści C# szukają narzędzi programistycznych głównie w trzech miejscach: w wyszukiwarkach, na GitHubie i w NuGet. Wyszukamy hasło "PDF Software C#" w DuckDuckGo, prywatnej wyszukiwarce, i poszukamy tych narzędzi do obsługi plików PDF na GitHubie oraz NuGet.org. NuGet to repozytorium pakietów .NET.

Tabela 1. Pozyskiwanie danych z typowych wyszukiwarek
Produkt DuckDuckGo GitHub NuGet
IronPDF 5 Nie znaleziono 5
Aspose 22 37 3
Syncfusion 49 Nie dotyczy 8
iTextPDF Nie znaleziono 40 7

Uwagi: Ograniczyłem wyszukiwanie do pierwszych 100 wyników w każdej usłudze i nie udało mi się znaleźć repozytorium IronPDF na GitHubie ani strony internetowej iText w DuckDuckGo. Syncfusion nie posiada repozytorium GitHub z przykładami tworzenia plików PDF.

Pozyskanie

Każdy z produktów ma inne podejście do nabywania produktów ze swoich stron internetowych.

IronPDF wyraźnie to zaznacza, umieszczając przycisk pobierania na stronie głównej

Produkt Comparisons with IronPDF, Figure 1: IronPDF Download Odkrycie

Rysunek 1 – Odkrycie możliwości pobrania IronPDF

Przycisk pobierania przekierowuje do serwisu NuGet.org oraz standardowej instrukcji instalacji pakietu .NET.

Aspose posiada na stronie głównej link, po kliknięciu którego należy wybrać język, a następnie wyświetlane są szczegóły dotyczące danej wersji produktu oraz przycisk pobierania

Produkt Comparisons with IronPDF, Figure 2: Aspose.PDF Language Selector

Rysunek 2 – Selektor języka Aspose.PDF

Produkt Comparisons with IronPDF, Figure 3: Aspose.PDF Download Odkrycie

Rysunek 3 — Aspose.PDF C# Pobierz Odkrycie

Następnie Aspose wyświetli stronę z instrukcjami dotyczącymi NuGet oraz kilkoma akapitami materiałów promocyjnych, zachęcając do pobrania narzędzi.

Produkt Comparisons with IronPDF, Figure 4: Aspose Download Page

Rysunek 4 – Strona pobierania Aspose

Syncfusion umieściło swoją bibliotekę do zarządzania plikami PDF w kategorii "Przetwarzanie dokumentów – PDF". Ich podstrona wygląda następująco:

Produkt Comparisons with IronPDF, Figure 5: Syncfusion PDF Odkrycie

Rysunek 5 — Syncfusion PDF Odkrycie

Następnie należy wypełnić formularz w celu utworzenia konta na ich stronie internetowej, podając adres e-mail, numer telefonu i nazwę firmy. Syncfusion weryfikuje Twój adres e-mail za pomocą wiadomości tekstowej, a następnie umożliwia pobranie instalatora oprogramowania. Można również zainstalować pakiet próbny z NuGet, ale według twórców instalator zapewnia "pełną wersję produktu". W ciągu kilku dni od rejestracji na stronie Syncfusion otrzymałem dwa e-maile i dwa telefony z ofertą pomocy w rozpoczęciu pracy. E-maile i rozmowy telefoniczne miały przyjazny ton, jednak rozmowy telefoniczne wydawały mi się nieco nachalne.

iTextPDF jasno to pokazuje, oferując jeden produkt i jeden link do niego:

Produkt Comparisons with IronPDF, Figure 6: iTextPDF Odkrycie

Rysunek 7 – iTextPDF Odkrycie

Ekran pobierania oferuje trzy opcje pobierania, wymagające rejestracji z podaniem numeru telefonu, adresu e-mail, stanowiska i nazwy firmy.

Produkt Comparisons with IronPDF, Figure 7: iText Download Screen

Rysunek 7 – Ekran pobierania iText

Zakres wyboru oferowany przez iText był dla mnie przytłaczający i nie byłem pewien, co pobrać. Wybrałem iText 7, po czym zostałem przekierowany na kolejny ekran, gdzie mogłem wybrać jeden z dziewięciu produktów związanych z formatem PDF do pobrania. Po raz kolejny uznałem to za mylące i nie byłem pewien, jakie biblioteki i narzędzia są mi potrzebne do mojego projektu.

Otrzymałem wiadomość e-mail od iText z linkiem do ich portalu dla klientów oraz wygenerowanym hasłem. Próbowałem skorzystać z ich portalu przy użyciu podanych danych logowania, ale nie udało mi się uzyskać dostępu do strony.

Jasność licencji

W przypadku każdej biblioteki pobranej przez programistę to licencja określa, czy i w jaki sposób może on używać produktu w swoim projekcie. Bardziej liberalna licencja pozwoli na dołączanie narzędzia do aplikacji mobilnych lub stacjonarnych, natomiast bardziej restrykcyjne licencje mogą ograniczać korzystanie z narzędzia wyłącznie do uruchamiania na chronionym serwerze.

IronPDF udostępnia przycisk "Wyczyść" na stronie głównej, obok przycisku "Pobierz bezpłatnie z NuGet", który prowadzi do warunków licencji. Na powstałej stronie jasno widać, ilu programistów obejmuje produkt oraz w ilu projektach można go wykorzystać. Istnieje ograniczenie dotyczące liczby biur, jakie może posiadać organizacja. Dystrybucja oprogramowania jako produktu SaaS lub aplikacji natywnej wymaga uiszczenia dodatkowej opłaty licencyjnej.

Aspose oferuje sześć różnych modeli licencyjnych: pakiety bez wsparcia, z wsparciem lub z wsparciem i doradztwem. Uważam, że ich opcje są dość zagmatwane, ponieważ istnieją również ograniczenia dotyczące rodzajów projektów, w których można korzystać z produktu, liczby licencjonowanych programistów oraz wielkości organizacji.

Projekty stron internetowych przeznaczonych dla użytkowników, w tym wsparcie techniczne:

Tabela 2 – Porównanie cen
Włączenie IronPDF Syncfusion AsposePDF iText
1 strona internetowa, 1 programista, 1 lokalizacja, wsparcie techniczne $799 2 495 USD 5 394 USD
10 stron internetowych, 10 programistów, 10 lokalizacji, wsparcie techniczne $2,399 13 990 USD 28 771 USD
Nieograniczona liczba stron internetowych, wsparcie techniczne $4,799 Nie dotyczy 25 785 USD+ (rocznie)
Produkt Comparisons with IronPDF, Figure 8: Aspose Licencjonowanie Model

Rysunek 8 — Model licencjonowania Aspose

Syncfusion pobiera jednorazową opłatę za swój produkt File Formats, który obejmuje obsługę wszystkich typów aplikacji .NET. Opłata jest naliczana od każdego programisty, a w drugim roku umowy obowiązuje obniżka stawki. Nie ma żadnych ograniczeń dotyczących wielkości organizacji ani liczby projektów, w których produkt jest wykorzystywany. Dostępna jest również bezpłatna licencja społecznościowa dla firm na etapie rozruchu.

Produkt Comparisons with IronPDF, Figure 9: Syncfusion Licencjonowanie

Rysunek 9 — Licencjonowanie Syncfusion

iText oferuje kilka produktów typu open source, ale sprawia wrażenie, że aby z nich korzystać, trzeba kupić licencję.

Produkt Comparisons with IronPDF, Figure 10: iText Open Source Produkt

Rysunek 10 – Produkt open source iText

Opcja zakupu licencji komercyjnej prowadzi do ekranu, na którym nie ma bezpośrednio wyświetlonych opcji zakupu. Dostępne jest narzędzie konfiguracyjne, w którym należy podać informacje dotyczące lokalizacji, języka, intensywności użytkowania oraz produktów, z których chcesz korzystać. Następnie narzędzie podaje wycenę licencji komercyjnej.

Produkt Comparisons with IronPDF, Figure 11: iText License Configuration Tool

Rysunek 11 – Narzędzie do konfiguracji licencji iText

Jeśli produkt jest dostępny na licencji open source, czy mogę po prostu z niego korzystać bez żadnych opcji wsparcia komercyjnego? Nie jest to jasne, dopóki nie przejdziesz do strony społeczności iText 7 i nie odkryjesz, że jest ona objęta licencją AGPL, która wymaga udostępnienia kodu źródłowego aplikacji napisanych przy użyciu tej biblioteki w tym modelu. To ciekawa opcja, ale może wprowadzać programistów w błąd.

Zgodność

Ze względu na różne modele wdrażania dostępne dla każdego produktu, na każdej stronie internetowej obiecuje się różne poziomy kompatybilności. Konieczne są dalsze badania w celu określenia kompatybilności z różnymi dostawcami usług hostingowych i narzędziami hostingowymi, takimi jak Docker.

Tabela 3 – Kompatybilność obiecana na stronie internetowej
Środowisko IronPDF Aspose Syncfusion iText
COM Tak
.NET Framework Tak Tak Tak Tak
.NET 5 Tak Tak Tak
.NET 6 Tak Tak Tak
.NET Standard Tak Tak Tak
Xamarin Tak Tak
MAUI Tak
Azure Tak
AWS Tak Tak
Mac Tak
Linux Tak
Docker Tak

Aspose to jedyny produkt, który twierdzi, że współpracuje z aplikacjami COM, co zazwyczaj stanowi potrzebę programistów korzystających ze starszych rozwiązań. Firma iText nie podaje na swojej stronie internetowej listy obsługiwanych platform, a przegląd pakietów NuGet wskazuje na obsługę wymienionych platform. Syncfusion wymienia obsługę kilku frameworków interfejsu użytkownika, ale nie podaje konkretnych wersji środowiska uruchomieniowego. iText był jedynym produktem oprócz IronPDF, który deklarował obsługę usługi w chmurze, z banerem podkreślającym obsługę AWS.

Produkt Comparisons with IronPDF, Figure 12: iText Wsparcie on AWS

Rysunek 12 — Obsługa iText w AWS

Pierwsze kroki Doświadczenie

Przejrzałem każdy z produktów oraz instrukcje "Pierwsze kroki" przedstawione na ich stronach internetowych. Są to instrukcje "zbuduj swoją pierwszą aplikację z użyciem produktu" dla każdego z tych produktów.

IronPDF

Udało mi się zainstalować i rozpocząć pracę z wersją próbną IronPDF przy użyciu NuGet i jednej linii kodu. Bardzo przydatne i nie zaśmiecało mojego systemu.

Przykład IronPDF na stronie "Pierwsze kroki" IronPDF działa z prostą konsolą lub aplikacją natywną wykorzystującą .NET 6 i wcześniejsze wersje. Tworzy i ładuje nowy plik PDF z prostym blokiem tekstu "Hello World", uzupełniając 5-wierszowy przykład kodu zapisaniem pliku.

Przykładowy kod jest przejrzysty i dobrze współpracuje z formatowaniem .NET 6 / C# 10. Blok kodu online posiada przycisk "kopiuj do schowka", dzięki czemu jego uruchomienie jest bardzo proste.

Plik jest zapisany w folderze bin/ w ramach projektu i, jako szybki przykład, działa. Chciałbym, aby tekst ten znalazł się obok pliku kodu, który właśnie napisałem, ponieważ niektórzy mogą nie wiedzieć, że zawartość znajduje się w folderze bin/.

Aspose

Aby rozpocząć korzystanie z bibliotek Aspose w moim systemie, musiałem zainstalować duży plik o rozmiarze 217 MB. Nie zainstalowało to żadnych aplikacji, a jedynie umieściło biblioteki Aspose na dysku.

Przykład Aspose znajduje się w dokumentacji w sekcji "Pierwsze kroki", co sprawia, że jest nieco trudniejszy do znalezienia. Przykładowy kod w przykładzie "Hello World" firmy Aspose zawiera opis wyjaśniający, co kod ma na celu, który wydaje się nieco powtarzalny w stosunku do komentarzy w samym kodzie.

Przykład Aspose nie działa zgodnie z opisem i wymaga poprawek. Podczas recenzowania ich produktu napotkałem następujące problemy:

  • Biblioteka .NET 6 jest dostarczana jako plik DLL i przechowywana na dysku w C:\Program Files (x86)\Aspose\Aspose.PDF for .NET\Bin\net6.0 -- W 2022 r. programiści .NET nie ładują bibliotek w ten sposób, preferując zamiast tego pakiety NuGet.
  • Nie ma żadnych wskazówek dotyczących tego, jak dodać odniesienie ani jakie odniesienia należy dodać.
  • Kiedy dodałem odwołanie do pliku Aspose.Pdf.dll, kod projektu przedstawiony na stronie nie skompilował się.
    • Dodałem brakujące instrukcje using i poprawiłem kod, aby można go było skompilować, ale nie dało się go uruchomić z powodu innych brakujących odwołań.
  • Projekt próbuje zapisać dane w folderze "Samples". Próbując uruchomić ten projekt, nie miałem tego folderu na dysku, a mój przykładowy projekt uległ awarii z powodu braku tego folderu.
  • Wygenerowany przykładowy plik PDF zawiera blok tekstu "Hello World" oraz fuksjowy znak wodny wskazujący, że jest to wersja demonstracyjna oprogramowania.

Syncfusion

Aby rozpocząć pracę, musiałem pobrać duży plik o rozmiarze 874 MB, a instalacja wymagała zalogowania się na serwer Syncfusion w celu wyodrębnienia bibliotek i pracy z nimi. Instalator utworzył aplikację "Panel sterowania", która umożliwiła mi przeglądanie wielu wersji demonstracyjnych na dysku.

Produkt Comparisons with IronPDF, Figure 13: Syncfusion's Control Panel Application

Rysunek 13 – Aplikacja Control Panel firmy Syncfusion

Demo Syncfusion znajduje się mniej więcej w połowie strony produktu Syncfusion's PDF Framework for .NET Framework, na niebieskim tle z jasnoniebieskim tekstem. Według Lighthouse kontrast jest niski i strona jest niedostępna dla niektórych użytkowników.

Wkleiłem kod Syncfusion do programu Visual Studio i nie udało mi się skłonić programu Visual Studio do wygenerowania odpowiedniej instrukcji "using" dla obiektów, do których odwołuje się kod demonstracyjny. W rzeczywistości, gdy poprosiłem Visual Studio o zlokalizowanie i wygenerowanie instrukcji using, program polecił mi zainstalowanie konkurencyjnego pakietu:

Produkt Comparisons with IronPDF, Figure 14: Visual Studio Suggesting that I Install iTextSharp to use Syncfusion

Rysunek 14 — Visual Studio sugeruje zainstalowanie iTextSharp w celu korzystania z Syncfusion

Kod z przykładu Syncfusion nie działał tak, jak pokazano na ekranie. Kod demonstracyjny zapisuje plik PDF do MemoryStream, obiektu zarządzającego zawartością pliku w pamięci. Zmodyfikowałem kod tak, aby zapisywał do pliku na dysku, i poprawnie wygenerował plik zawierający "Hello World".

iText

Demo iText jest napisane w przejrzystym edytorze kodu, który znajduje się w środkowej części strony głównej produktu. Społeczność iText 7 W przeciwieństwie do innych wersji demonstracyjnych, iText zawierał link umożliwiający wyświetlenie wygenerowanego pliku PDF dla tego kodu.

Musiałem pobrać pakiet instalacyjny z ich portalu dla klientów, a dzień po rejestracji o 5 rano dostałem e-mail z instrukcjami, jak się zarejestrować. Dane logowania nie działały, więc zamiast tego pobrałem i zainstalowałem pakiety społecznościowe dostępne na NuGet.

Przykładowy kod dostarczony dla iText7 nie działa w obecnej postaci. W tym kodzie brakuje również kilku instrukcji using, ale po ich dodaniu aplikacja wygenerowała plik PDF i zapisała go w folderze bin/ projektu.

Łatwość użytkowania dla programisty C

Ten element recenzji dotyczy API oraz interakcji, jakie programiści będą mieli z biblioteką. Każde z tych narzędzi oferuje kilka sposobów tworzenia dokumentów PDF i pracy z nimi. Przyjrzyjmy się każdemu z nich.

Dokumentacja

Dokumentacja produktu ma decydujące znaczenie dla jego długoterminowego sukcesu wśród programistów. Gdy zagłębiają się w temat i potrzebują bardziej zaawansowanych funkcji, jak szybko mogą znaleźć te materiały i czy dostępne są przykłady, które pomogą im zrozumieć te koncepcje.

W przypadku każdego z tych produktów przeszukałem dokumentację API pod kątem możliwości dodawania podpisów cyfrowych do plików PDF.

IronPDF

Dokumentacja API jest przejrzysta i dobrze zorganizowana, a po lewej stronie znajduje się spis treści z aktywnym filtrem. Pole wyszukiwania w prawym górnym rogu zawiera również filtr działający w czasie rzeczywistym i szybko wyświetla kilka artykułów na temat różnych komponentów zapewniających funkcje Signature. Witryna API posiada tryb jasny i ciemny, co jest przydatną funkcją preferowaną przez programistów.

Produkt Comparisons with IronPDF, Figure 15: IronPDF API Search Results for Signature

Rysunek 15 – Wyniki wyszukiwania API IronPDF dla podpisu

Dokument klasy PdfSignature opisuje obiekt, ale nie zawiera żadnych linków do przykładowego kodu. Przeszukałem stronę ironpdf.com pod hasłem "podpis" i znalazłem przykładowy kod, który odwołuje się do obiektu PdfSignature w przykładzie IronPDF "Cyfrowe podpisywanie pliku PDF".

Aspose

Dokumentacja API Aspose przekierowała mnie do klasy PdfFileSignature, gdy szukałem hasła "Signature". Ta strona, podobnie jak strona IronPDF, zawiera szczegółowe informacje na temat klasy PdfFileSignature, ale nie zawiera żadnych linków do wersji demonstracyjnych ani opisu sposobu korzystania z tej klasy.

Wróciłem do strony głównej bazy dokumentacji Aspose w sekcji Aspose PDF for .NET Dokumentacja i wyszukałem hasło "signature". Następnie wyświetlono mi listę odpowiednich artykułów i kliknąłem na artykuł "Dodaj podpis do pliku PDF" na stronie Aspose Add Signature in PDF.

Syncfusion

Podstawowa strona dokumentacji Syncfusion dotycząca produktu do obsługi formatów plików PDF znajduje się pod adresem Syncfusion PDF File Formats Overview. Znalezienie jej wymagało kilku kliknięć na stronie. Nie musiałem daleko szukać, aby znaleźć przykład podpisu na pierwszej stronie dokumentacji.

Na stronie Syncfusion nie ma dokumentacji API dotyczącej funkcji podpisu cyfrowego.

iText

Dokumentacja API dla iText jest bardzo szczegółowa i generowana dla każdej wydanej wersji. Jest to standardowy wygląd i styl, który można spotkać w innych bibliotekach w Internecie. Wyszukiwanie podpisu pozwoliło znaleźć kilka klas z doskonałymi opisami tych funkcji, ale ponownie nie ma linków do przykładów.

Przeszukałem stronę internetową iText w poszukiwaniu przykładu podpisu, ale nie udało mi się go znaleźć, a zamiast tego wyświetliło się kilka artykułów na blogu ogłaszających nowe partnerstwa.

API

API udostępniane przez każde z tych narzędzi jest bardzo opisowe, a każde z nich ma własne podejście do zapewnienia programistom pełnego dostępu do tworzenia i zarządzania treścią dokumentów PDF. Na szczęście wszystkie frameworki posiadają kompletne podpowiedzi autouzupełniania, które zapewniają doskonałą dokumentację wbudowaną podczas pracy z ich narzędziami w nowoczesnym edytorze kodu, takim jak Visual Studio lub Visual Studio Code, który oferuje funkcje autouzupełniania.

IronPDF

Interfejsy API IronPDF ułatwiają bardzo trudne i złożone interakcje dzięki uproszczonym poleceniom, takim jak "RenderHtmlAsPdf", ale nadal zapewniają głęboki dostęp do tworzenia i umieszczania treści, zabezpieczeń, metadanych i formularzy dokumentu. Jako programista uważam, że te interfejsy API "odzwierciedlają mój sposób myślenia" o renderowaniu treści.

Nazwy i terminy używane przez interfejsy API IronPDF jasno wskazują, że renderujesz dokument lub tworzysz dokument. Właściwości czasu w niektórych ustawieniach są liczbami całkowitymi reprezentującymi milisekundy, podczas gdy wolałbym, aby był to natywny typ TimeSpan. Na koniec chciałbym, aby typy Settings i Options były wyposażone w nowoczesny, płynny interfejs API konfiguracji, taki jak ten:

var renderer = new IronPdf.ChromePdfRenderer(options => {
    options.RenderDelay = TimeSpan.FromSeconds(1);
});
var renderer = new IronPdf.ChromePdfRenderer(options => {
    options.RenderDelay = TimeSpan.FromSeconds(1);
});
Dim renderer = New IronPdf.ChromePdfRenderer(Sub(options)
	options.RenderDelay = TimeSpan.FromSeconds(1)
End Sub)
$vbLabelText   $csharpLabel

Syncfusion

Interfejsy API Syncfusion są przejrzyste i zapewniają bardzo szczegółową kontrolę nad sposobem interakcji z narzędziami konwertującymi. Nie ma tu żadnych skrótów, wszystko jest wymagane i musisz określić, jakich narzędzi używasz, ponieważ nie ma dostępnych ustawień domyślnych. Ustawienia są rozbudowane i zapewniają precyzyjną kontrolę nad wszystkim, w tym nad lokalizacją renderera WebKit na dysku.

Ta dodatkowa konfiguracja, choć w niektórych instalacjach nie jest potrzebna, sprawiała w przeszłości problemy użytkownikom, ale w przyszłych wersjach, które obiecuje Syncfusion, nie będzie już stanowić problemu.

Aspose

API Aspose jest niezwykle rozbudowane i zastanawiam się, czy w ogóle mają na celu zwiększenie produktywności programistów. Ilość konfiguracji potrzebnej do załadowania dokumentu ze strony internetowej jest zdumiewająca – dziesięć linii kodu, czyli dwa razy więcej niż w przypadku Syncfusion (pięć).

Przykładem tego jest fakt, że Aspose nie posiada interfejsów API umożliwiających określenie adresu URL do pobrania i konwersji.

iText

iText ma API podobne do Aspose, bardzo rozbudowane i umożliwia bezpośrednią interakcję z zapisywaniem w dokumencie różnych typów danych, ale nie jest jasne, jak tworzyć sekcje dokumentu. Biorąc pod uwagę, jak mało przejrzyste są interfejsy API i niską jakość dokumentacji, praca z iText jest w najlepszym razie trudna.

HTML do PDF

Następnie chciałem przetestować możliwości renderowania i szybkość działania każdego z tych narzędzi przy konwersji treści HTML do formatu PDF. Napisałem kod, który jest dostępny w repozytorium Jeffa na GitHubie poświęconym porównaniom plików PDF. Można go przejrzeć, aby dowiedzieć się więcej o tym, jak przeprowadziłem każdy z tych testów. Umieściłem tam również kopię każdego z plików PDF z wynikami, abyście mogli je przejrzeć. Przetestuję każdy produkt pod kątem:

  • Łatwość konwersji strony ze statycznej witryny internetowej, która dostarcza zwykły kod HTML. Wykorzystamy statyczną stronę internetową KlipTok, która służy do obsługi wyszukiwarek na stronie z klipami Twitch – KlipTok.com. (Uwaga: strona internetowa jest niedostępna na dzień ostatniej modyfikacji niniejszego artykułu)
  • Renderowanie strony ESPN.com, witryny zawierającej dużo kodu JavaScript i CSS3, która wyświetla stronę główną serwisu.
  • Renderowanie formularza na lokalnej stronie w celu przetestowania działania i wyglądu poszczególnych pól w wynikowym pliku PDF.

Scenariusz 1: Testy statycznych stron internetowych

Strona referencyjna jest bardzo prosta, nie zawiera CSS, a jedynie tekst z linkami i obrazami.

Produkt Comparisons with IronPDF, Figure 16: The reference website for Static Web Tests

Rysunek 16 — Strona referencyjna Static Web Tests

IronPDF

Było to proste zadanie składające się z trzech linii kodu, a wydajność wyglądała dobrze i wyniosła 835 ms. Jednak po otwarciu pliku PDF stwierdziłem, że żadne z obrazów nie zostało uwzględnione w renderowaniu, co jest rozczarowującym wynikiem przy domyślnej konfiguracji.

Po krótkich poszukiwaniach dowiedziałem się, że mogę dodać opóźnienie renderowania, a dzięki tej konfiguracji udało mi się wyrenderować plik PDF zawierający właściwe obrazy na stronie.

W wersji testowej narzędzia w wygenerowanym pliku PDF znajduje się znak wodny. W wersji z pełną licencją ten znak wodny nie występuje.

Produkt Comparisons with IronPDF, Figure 16: The reference website for Static Web Tests

Rysunek 17 – Renderowanie statycznej strony przez IronPDF

Syncfusion

Syncfusion to była ciekawa, ale i trochę zagmatwana przygoda. Ich dokumentacja wspomina o kilku różnych sposobach renderowania i dostarczania HTML i PDF z różnymi numerami wersji i różnymi frameworkami, które wymagają innego kodu i konfiguracji, a także instalacji narzędzi binarnych, żeby wszystko działało jak trzeba.

Podobnie jak w przypadku wersji demonstracyjnej IronPDF, firma Syncfusion nie wyrenderowała obrazów na stronie i dostarczyła plik PDF z bardzo wąskimi marginesami.

W wersji testowej narzędzia w wygenerowanym pliku PDF znajduje się znak wodny. W wersji z pełną licencją ten znak wodny nie występuje.

Produkt Comparisons with IronPDF, Figure 18: Syncfusion Rendering of the Static Site

Rysunek 18 – Renderowanie statycznej strony przez Syncfusion.

Aspose

Firma Aspose posiada bardzo jasny zestaw wskazówek dotyczących korzystania z jej narzędzi. Jednak, zgodnie z instrukcjami na ich stronie internetowej dotyczącymi konwersji strony internetowej do formatu PDF, występuje w nich poważny błąd, który uniemożliwia działanie tej funkcji. Ponadto ich narzędzie online służące do konwersji stron internetowych do formatu PDF przestało działać.

iText

Dokumentacja iText nie jest łatwa do znalezienia i musieliśmy przeczytać e-booka, aby uzyskać przykładowy kod, którego szukaliśmy, aby uruchomić ten przykład. Bez zmian w kodzie, bez dodatkowej konfiguracji i przy użyciu zaledwie czterech linii kodu wygenerowaliśmy bardzo estetyczny plik PDF bez znaków wodnych i z odpowiednimi marginesami.

Produkt Comparisons with IronPDF, Figure 19: iText Rendering of the Static Site

Rysunek 19 – Renderowanie statycznej strony przez iText.

Tabela 4 – Porównanie wydajności konwersji HTML do PDF dla witryny statycznej
Wykorzystane narzędzie Szybkość w milisekundach (im niższa, tym lepiej)
IronPDF 835 ms
Syncfusion 1799 ms
Aspose Nie dotyczy
iText 2975 ms

Scenariusz 2: Kompleksowa witryna medialna – ESPN.com

W tym teście używamy ESPN.com, strony sportowej, która ma na swoich stronach dużo CSS, obrazów i JavaScript. Biorąc pod uwagę, że Aspose nie sprawdziło się w prostym teście, pominęliśmy je w dalszej części. Do stworzenia tych zrzutów użyjemy tego samego kodu, który wykorzystaliśmy w ostatnim demo, zastępując jedynie adres strony internetowej.

Dla porównania, oto wygląd serwisu ESPN w momencie przeprowadzania tego testu:

Produkt Comparisons with IronPDF, Figure 20: Syncfusion Rendering of the Static Site

Rysunek 20 – Pełne wyświetlenie strony ESPN.com w przeglądarce

Wyniki u góry oraz raport o stanie gry na środku ekranu są umieszczane za pomocą JavaScript, a wszystkie pozycjonowanie i kolory są obsługiwane przez CSS3.

IronPDF

Renderowanie IronPDF pozwoliło wiernie odtworzyć i załadować treści dynamiczne, jednak wygląda na to, że strona została wyrenderowana dla urządzenia mobilnego, a elementy treści zostały podzielone na oddzielne segmenty i ułożone w kafelki.

Produkt Comparisons with IronPDF, Figure 21: IronPDF Rendering of ESPN

Rysunek 21 – Renderowanie ESPN przez IronPDF

Syncfusion

Syncfusion wykonało podobne renderowanie w "stylu mobilnym" z treścią ułożoną w pionowe paski. Utraciliśmy jednak kilka obrazów, które były dynamicznie ładowane przez witrynę ESPN, a także część formatowania czcionek:

Produkt Comparisons with IronPDF, Figure 22: Syncfusion Rendering of ESPN

Rysunek 22 – Renderowanie ESPN przez Syncfusion

iText

W tym teście biblioteka iText odmówiła działania i generowała wyjątek NullReferenceException, uniemożliwiając próbę renderowania strony internetowej.

Tabela 4 – Porównanie wydajności złożonej witryny: HTML vs. PDF
Wykorzystane narzędzie Szybkość w milisekundach (im niższa, tym lepiej)
IronPDF 835 ms
Syncfusion 1799 ms
Aspose Nie dotyczy
iText 2975 ms

Strona internetowa oparta na formularzach

Ostatecznym testem jest wygenerowanie pliku PDF z polami formularza na podstawie strony internetowej. Prosty formularz rejestracji do newslettera, który napisałem, jest dostępny w repozytorium GitHub i wyświetla się w przeglądarce Firefox z wykorzystaniem Bootstrap 5 w następujący sposób:

Produkt Comparisons with IronPDF, Figure 23: Form Website in Firefox

Rysunek 23 – Strona internetowa Form w przeglądarce Firefox

Uwaga: pole "State" jest polem rozwijanym, pole "Phone" jest polem typu "telefon", pole "Email" jest polem typu "e-mail", a pole "Shoe Size" jest polem numerycznym.

IronPDF

Iron naprawdę wyróżnia się w tym teście, szybko wyświetlając się w układzie dostosowanym do urządzeń mobilnych, o czym świadczy przycisk menu hamburgerowego w prawym górnym rogu. Znaki wodne na stronie są irytujące w wersji testowej, ale zostały usunięte w wersji z pełną licencją.

Wszystkie pola tekstowe są renderowane jako pola formularza PDF, z którymi mogę wchodzić w interakcję, z wyjątkiem przycisków opcji i pola wyboru na końcu. Pola tekstowe nie podlegają żadnej szczególnej walidacji ani wymogom dotyczącym zawartości, tak jak ma to miejsce w przeglądarce.

Produkt Comparisons with IronPDF, Figure 24: IronPDF Rendering of the Form

Rysunek 24 – Renderowanie formularza przez IronPDF

Syncfusion

Syncfusion wyświetliło coś, co wygląda na pełną wersję strony na komputery stacjonarne, bo nie ma tam przycisku menu hamburgerowego. Elementy formularza wyświetlane są na ekranie jako kwadraty, przyciski i pola, ale żadne z nich nie jest standardowym polem wprowadzania danych w formacie PDF. Linki w nagłówku i stopce, choć zasłonięte znakiem wodnym, są klikalne.

Form Site Rendered by Syncfusion, Figure 25: Form Site Rendered by Syncfusion

Rysunek 25 – Strona formularza wygenerowana przez Syncfusion

iText

iText był zdecydowanie najszybszym z trzech frameworków w renderowaniu treści. Jednak ta szybkość miała swoją cenę. Ich renderowanie dostarczało tagi kotwic, które po kliknięciu umożliwiały nawigację, ale nie prowadziły do oryginalnej strony internetowej. Całe formatowanie z Bootstrapa zostało utracone, a wszystkie pola formularzy były renderowane jako zwykłe pola.

Form Site Rendered by Syncfusion, Figure 26: Form Site Rendered by iText

Rysunek 26 – Strona formularza wygenerowana przez iText

Wykorzystane narzędzie Szybkość w milisekundach (im niższa, tym lepiej)
IronPDF 835 ms
Syncfusion 1799 ms
Aspose Nie dotyczy
iText 2975 ms

Pomoc techniczna

Każdy z tych frameworków ma dostępne oddzielne możliwości wsparcia i własny cykl wydawniczy. W przypadku realnego, obecnie rozwijanego i zyskującego na popularności frameworka, który będzie obsługiwał więcej standardów PDF, chcielibyśmy widzieć dostępną pomoc online oraz regularny harmonogram wydawania nowych wersji.

IronPDF

Z witryny NuGet wynika, że IronPDF wydaje nową wersję co 2–4 tygodnie. Dostępne są opcje wsparcia technicznego poprzez czat na żywo oraz wsparcie e-mail. Byłoby miło, gdyby istniało forum internetowe lub serwer Discord / Slack, na którym można by porozmawiać z obsługą klienta i innymi członkami społeczności IronPDF.

Syncfusion

Według NuGet, raz w tygodniu publikują aktualizację swoich bibliotek PDF. Syncfusion posiada fora internetowe oraz internetowy system zgłoszeń do pomocy technicznej. Syncfusion nie oferuje opcji wsparcia na czacie na żywo.

Aspose

Według NuGet, Aspose.PDF wydaje aktualizacje raz w miesiącu. Oferują bezpłatną pomoc techniczną, płatną pomoc techniczną oraz płatne doradztwo. Nie widzę żadnych dostępnych interakcji na żywo ani interakcji społecznościowych.

iText

NuGet informuje, że iText aktualizuje swoje pakiety raz na 2–3 miesiące. Jedyne dostępne wsparcie to internetowy system śledzenia zgłoszeń JIRA oraz formularz "skontaktuj się z nami". Nie ma dostępnych interakcji na żywo ani forów.

Ostateczna karta wyników

W każdej sekcji niniejszego dokumentu dokonałem rankingu produktów względem siebie, przy czym cztery oznacza najwyższą ocenę.

Kategoria IronPDF Aspose Syncfusion iText
Odkrycie 3 4 2 1
Pozyskanie 4 3 2 1
Licencjonowanie 3 2 4 1
Kompatybilność 4 1 2 3
Pierwsze kroki 4 1 2 3
API 4 2 3 1
Dokumentacja 4 4 3 2
Render Websites 4 0 3 2
Wsparcie 3 4 2 1
Ogółem (im wyższa ocena, tym lepiej) 33 21 23 15

Uwagi:

  • W fazie Odkrycie brak przejrzystej biblioteki przykładów na GitHubie sprawił, że Syncfusion znalazło się na ostatnim miejscu, a ja przedłożyłem możliwość znalezienia produktu w wyszukiwarce nad znalezieniem go na GitHubie.
  • Proces zakupu w serwisie IronPDF był przejrzysty dzięki przyciskowi, który natychmiast przekierowywał na stronę pobierania. Inne rozwiązania miały różne poziomy rejestracji i procesy wyszukiwania potrzebnej biblioteki. iText miał najbardziej zagmatwany proces i ostatecznie zbyt wiele opcji.
  • Warunki licencji były bardzo jasne w przypadku Syncfusion, podczas gdy Aspose i IronPDF miały kilka ograniczeń. Szeroki wybór opcji oferowanych przez Aspose zapewnił tej firmie trzecie miejsce, natomiast mylące opcje open source / komercyjne oraz konieczność korzystania z narzędzia do obliczania licencji sprawiły, że iText znalazł się na ostatnim miejscu.
  • Kwestia kompatybilności jest nieco niejasna w świetle informacji podanych na stronach internetowych. IronPDF deklaruje działanie w różnych chmurach, podczas gdy inne narzędzia nie zawierają takich deklaracji. W trakcie procesu testowania konieczne jest przeprowadzenie dalszych badań w celu ustalenia, czy te trzy narzędzia mogą być uruchamiane w tych środowiskach.
  • Serwis Pierwsze kroki umieścił IronPDF na pierwszym miejscu, ponieważ ich kod działał bez żadnych modyfikacji. iText wymagał niewielkich aktualizacji, a Aspose w ogóle nie działał, więc musiałem całkowicie przepisać przykład.
  • Struktura API dostarczana przez IronPDF jest przejrzysta i pozwala programistom pracować w bardzo produktywny sposób, zgodnie z podejściem "daj mi domyślne ustawienia, a resztę sam wymyślę". Syncfusion stosuje podobne podejście, ale zaczyna być zbyt rozwlekłe. Aspose i iText mają bardzo rozbudowane API, a brak dobrej dokumentacji spowodował, że iText znalazł się na samym dole mojej listy ocen.
  • Wyniki w kategorii dokumentacji wskazują, że IronPDF i Aspose zajęły ex aequo pierwsze miejsce pod względem jakości obsługi, ponieważ oferowały te same funkcje, podczas gdy w przypadku Syncfusion i iText brakowało przykładów lub dokumentacji API. Syncfusion ma niewielką przewagę dzięki wyczerpującej zawartości swojej witryny dokumentacyjnej.
  • Test renderowania stron internetowych wykazał, że chociaż iText był najszybszy, nie był w stanie odtworzyć wyglądu przekazanej mu strony. IronPDF zapewnił pełną zgodność z CSS i JavaScript wraz z interaktywnymi polami formularza, podczas gdy Syncfusion oferował renderowanie JavaScript, niektóre funkcje CSS, ale nie posiadał interaktywnych pól formularza.

Zwróć uwagęAspose, iText i Syncfusion są zastrzeżonymi znakami towarowymi ich odpowiednich właścicieli. Ta strona nie jest powiązana z firmami Aspose, iText ani Syncfusion, nie jest przez nie promowana ani sponsorowana. Wszystkie nazwy produktów, logo i marki są własnością ich odpowiednich właścicieli. Porównania mają charakter wyłącznie informacyjny i opierają się na informacjach dostępnych publicznie w momencie pisania tekstu.

Często Zadawane Pytania

Jak mogę przekonwertować HTML na PDF w języku C#?

Możesz użyć metody RenderHtmlAsPdf biblioteki IronPDF do konwersji ciągów HTML na pliki PDF. Możesz również konwertować pliki HTML na pliki PDF za pomocą metody RenderHtmlFileAsPdf.

Jakie są kluczowe korzyści z używania IronPDF?

IronPDF oferuje prostą instalację przez NuGet, intuicyjne API, szybkie przetwarzanie HTML na PDF i dobrze zorganizowaną dokumentację. Zapewnia także jasne opcje licencyjne oraz solidną kompatybilność z środowiskami .NET.

Jak dokumentacja IronPDF poprawia doświadczenie deweloperów?

IronPDF dostarcza dobrze zorganizowaną dokumentację z możliwością przeszukiwania API i przykładami, co ułatwia deweloperom znalezienie potrzebnych informacji i efektywne wdrożenie rozwiązań.

Jakie są wyzwania związane z biblioteką PDF SyncFusion?

Biblioteka PDF SyncFusion wymaga uciążliwego wstępnego ustawienia, w tym utworzenia konta i następującej komunikacji, co niektórzy użytkownicy uważają za inwazyjne. Ma również mniej optymalną wydajność renderowania w porównaniu do IronPDF.

Jak IronPDF obsługuje CSS i JavaScript podczas konwersji?

IronPDF wyróżnia się zachowaniem wierności przy renderowaniu CSS i JavaScript podczas konwersji HTML do PDF, zapewniając, że wynikowy dokument ściśle odpowiada oryginalnej treści.

Co sprawia, że IronPDF jest preferowanym wyborem dla deweloperów w środowiskach C#.NET?

IronPDF jest preferowany ze względu na uproszczoną akwizycję, jasne licencjonowanie, intuicyjne API, szybkie prędkości konwersji i szeroką dokumentację. Oferuje lepsze doświadczenie deweloperów z zaawansowanymi funkcjami, które czynią go niezawodnym rozwiązaniem dla PDF w środowiskach C#.NET.

Jaki jest powszechny problem z biblioteką PDF Aspose według artykułu?

Biblioteka PDF Aspose jest krytykowana za złożony i mylący model licencjonowania oraz niefunkcjonalną konwersję HTML, co może być trudne dla użytkowników do ogarnięcia i efektywnego wdrożenia.

Jak iText radzi sobie z złożonymi stronami internetowymi?

iText jest znany ze swojej szybkości podczas renderowania statycznych treści; jednakże, ma trudności z złożonymi stronami internetowymi, oferując ograniczone wsparcie dla deweloperów borykających się z zawiłymi strukturami HTML.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej

Zespol wsparcia Iron

Jestesmy online 24 godziny, 5 dni w tygodniu.
Czat
Email
Zadzwon do mnie