itext7 Wyodrębnij tekst z PDF vs IronPDF (Przykład kodu Tutorial)
Artykuł ten został napisany przez Jeffa Fritza, uznanego autorytetu w dziedzinie programowania w środowisku .NET.
W tym artykule, Jeff recenzuje i porównuje bibliotekę 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 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 ma swoją bibliotekę zarządzania PDF sklasyfikowaną jako "Przetwarzanie dokumentów - PDF". Ich podstrona wygląda następująco:
Rysunek 5 - Odkrycie PDF Syncfusion
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 e-mail wiadomością tekstową, a następnie pozwala pobrać instalator dla swojego oprogramowania. Można również zainstalować pakiet próbny z NuGet, ale według twórców instalator zapewnia "pełną wersję produktu". W dniach po zapisaniu się na stronę internetową Syncfusion, otrzymałem dwa e-maile i dwa telefony oferujące pomoc w rozpoczęciu. 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 i następnie zostałem przeprowadzony do kolejnego ekranu, aby wybrać spośród dziewięciu produktów związanych z 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 | Aspose.PDF | iText |
|---|---|---|---|---|
| 1 strona internetowa, 1 programista, 1 lokalizacja, wsparcie techniczne | $999 | 2 495 USD | 5 394 USD | |
| 10 stron internetowych, 10 programistów, 10 lokalizacji, wsparcie techniczne | $2,999 | 13 990 USD | 28 771 USD | |
| Nieograniczona liczba stron internetowych, wsparcie techniczne | $5,999 | Nie dotyczy | 25 785 USD+ (rocznie) |
Rysunek 8 — Model licencjonowania Aspose
Syncfusion posiada opłatę jednorazową za produkt Formaty Plików, która obejmuje wsparcie dla wszystkich typów aplikacji .NET. Opłata jest naliczana na dewelopera, z obniżeniem stawki na drugi rok umowy. 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 ich strony społeczności iText i odkryjesz, że jest on objęty licencją AGPL, która wymaga, byś opublikował kod źródłowy aplikacji, które piszesz, używając ich 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 wsparcie dla kilku frameworków interfejsu użytkownika, ale nie dla konkretnych wersji runtime. 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śmiećał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/ pod projektem i w przypadku szybkiego przykladu dziala. Wolalbym, aby byl napisany obok pliku kodu, który wlasnie napisalem, poniewaz niektórzy ludzie moga nie wiedziec, aby szukac w folderze bin/ zawartosci.
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 DLL i przechowywana na dysku w
C:\Program Files (x86)\Aspose\Aspose.PDF for .NET\Bin\net6.0— To nie jest sposób, w jaki deweloperzy .NET laduja biblioteki w 2022 roku, zamiast tego preferujac pakiety NuGet. - Nie ma żadnych wskazówek dotyczących tego, jak dodać odniesienie ani jakie odniesienia należy dodać.
- Kiedy dodalem odniesienie do jednego pliku
Aspose.Pdf.dll, kod projektu przedstawiony na stronie nie skompilowal sie.- 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 Panelu Sterowania Syncfusion
Demo Syncfusion znajduje się mniej więcej w połowie strony produktowej pod PDF Framework dla .NET Syncfusion z niebieskim tłem i jasnoniebieskim tekstem na nim. 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 instalację iText do użycia z Syncfusion
Kod dla próbki Syncfusion nie zrobił nic, jak przedstawiono 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. iText Community W przeciwieństwie do innych dem, iText zawierał link do zobaczenia wygenerowanego 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.
Próbka kodu dostarczona dla iText nie działa tak, jak została napisana. W tym kodzie brakuje równiez kilku dyrektyw using, ale gdy zostaly dodane, aplikacja wygenerowala plik PDF i zapisala go w folderze bin/ projektu.
Łatwość użycia 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 linków do przykladowego kodu. Szukanie na stronie ironpdf.com hasla 'podpis' znalazlo przykladowy kod, który odnosi sie do obiektu PdfSignature na Przyklad IronPDF cyfrowego podpisywania PDF.
Aspose
Dokumentacja API Aspose przekierowała mnie do klasy PdfFileSignature, gdy szukałem hasła "Signature". Ta strona, podobnie jak strona IronPDF, pokazuje szczególy klasy PdfFileSignature, ale nie zawiera linków do demonstracji ani nie opisuje, jak uzyc klasy.
Wróciłem do podstawowej strony dokumentacji Aspose na Aspose.PDF dla .NET Dokumentacja i szukałem sygnatury. 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 dla produktu formatu plików PDF znajduje się pod Syncfusion PDF File Formats Overview i wymagają kilku kliknięć na ich stronie, aby ją znaleźć. Nie musiałem daleko szukać, aby znaleźć przykład podpisu na pierwszej stronie dokumentacji.
Na stronie Syncfusion nie ma dostępnych dokumentów API wspierających funkcję sygnatury cyfrowej.
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 dają bardzo szczegółową kontrolę nad sposobem interakcji z ich narzędziami konwersji. 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, chociaż nie jest potrzebna w niektórych instalacjach, sprawiała problemy niektórym w przeszłości, a przyszłe wersje, Syncfusion obiecuje, że nie będą problemem.
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 z witryny jest zadziwiająca, dziesięć linii kodu lub dwa razy więcej linii niż 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 ciekawa i zagmatwana podróż. Ich dokumentacja odnosi się do kilku różnych sposobów renderowania i dostarczania HTML i PDF z różnymi numerami wersji i różnymi frameworkami, wymagającymi różnego kodu i konfiguracji, a także instalacji narzędzi binary do poprawnego działania.
Podobnie do dema IronPDF, Syncfusion nie zrenderował obrazów dla strony i dostarczył PDF z bardzo małymi 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 Static Site 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ą układaną pionowo. 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 wyrenderowało to, co wydaje się pełną wersją stroną biurka, ponieważ nie ma 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 - Witryna formularza wyrenderowana 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 i system biletów wsparcia online. Nie ma opcji wsparcia na czacie na żywo od Syncfusion.
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 |
| Renderowanie stron internetowych | 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 zapewnia podobne podejście, ale zaczyna stawać się rozwlekłe. Aspose i iText mają bardzo rozbudowane API, a brak dobrej dokumentacji spowodował, że iText znalazł się na samym dole mojej listy ocen.
- Punktacja dokumentacji oznacza, że IronPDF i Aspose zajmują pierwsze miejsce w doświadczeniu użytkownika, gdyż miały te same funkcje, podczas gdy Syncfusion i iText były pozbawione przykładów lub dokumentacji API. Syncfusion ma niewielką przewagę dzięki wnikliwej zawartości na ich stronie dokumentacyjnej.
- Test renderowania stron internetowych wykazał, że chociaż iText był najszybszy, nie był w stanie odtworzyć wyglądu przekazanej mu strony. IronPDF było w stanie dostarczyć pełną wierność CSS i JavaScript z interaktywnymi polami formularzy, podczas gdy Syncfusion miało renderowanie JavaScript, niektóre możliwości CSS, ale brak interaktywnych pól formularzy.
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.



