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:
- Doświadczenie w zakresie odkrywania i pozyskiwania
- Przejrzystość licencji
- Kompatybilność
- Doświadczenie w zakresie "Pierwszych kroków"
- Łatwość korzystania z API dla programisty C#
- Jakość dokumentacji, w tym przykładów kodu i samouczków
- Funkcje konwersji HTML do PDF
- Zgodność z CSS3
- Zgodność z HTML 5
- Zgodność z JavaScript
- Obsługa formularzy generowania
- Wierność oddania treści
- Pomoc techniczna
- 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.
| 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
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
Rysunek 2 – Selektor języka Aspose.PDF
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.
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:
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:
Rysunek 7 – iTextPDF Odkrycie
Ekran pobierania oferuje trzy opcje pobierania, wymagające rejestracji z podaniem numeru telefonu, adresu e-mail, stanowiska i nazwy firmy.
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:
| 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) |
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.
Rysunek 9 — Licencjonowanie Syncfusion
iText oferuje kilka produktów typu open source, ale sprawia wrażenie, że aby z nich korzystać, trzeba kupić licencję.
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.
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.
| Ś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.
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.
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:
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.
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)
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.
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.
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.
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.
Rysunek 19 – Renderowanie statycznej strony 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 |
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:
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.
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:
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.
| 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:
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.
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.
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.
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.
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.



