Porównania

gPdf vs Puppeteer

Porównanie: API JSON do PDF na edge w gPdf kontra wzorzec Chromium bez interfejsu graficznego na serwerze w Puppeteer. Opóźnienie, cena, środowisko uruchomieniowe i obciążenia, w których wygrywa każde podejście.

W skrócie

Puppeteer to ogólne narzędzie automatyzacji przeglądarki, które przy okazji potrafi generować PDF-y. gPdf to silnik generowania PDF działający na edge w jednocyfrowych milisekundach. Jeśli obciążenie to ustrukturyzowane dokumenty produkcyjne (faktury, etykiety wysyłkowe, zestawienia), gPdf daje 50-100× niższe opóźnienie i 10-20× niższy koszt. Jeśli trzeba konwertować dowolne żywe strony internetowe albo PDF-y w stylu zrzutu ekranu istniejącego HTML, Puppeteer nadal jest właściwym narzędziem.

Obok siebie

Kryterium gPdf Puppeteer Przewaga
p50 generowania (1-stronicowa faktura A4)
Oba pomiary wykonano na tym samym wejściu przez 1000 wywołań.
3 ms 312 ms gPdf
Zimny start ~12 ms (pierwsze żądanie do świeżego isolate) 1,5-2,5 s (start Chromium) gPdf
Środowisko uruchomieniowe
Puppeteer potrzebuje binariów przeglądarki o rozmiarze 200-800 MB; gPdf dostarcza generator jako moduł WASM około 2 MB.
Izolaty V8 Cloudflare Workers Długotrwały Node.js + kontener Chromium gPdf
Regiony edge Ponad 300 punktów PoP Cloudflare Tam, gdzie wdrożysz kontener, zwykle 3–6 regionów gPdf
Zgodność PDF/A PDF/A-1b · 2b · 3b · 4 wybierane na poziomie żądania Brak natywnego wsparcia; wymaga przetwarzania po wygenerowaniu przez Ghostscript albo veraPDF gPdf
E-faktura (Factur-X / ZUGFeRD) Natywny punkt końcowy; osadza CII XML na PDF/A-3b Brak wsparcia; wymaga osobnego etapu procesu gPdf
Kody kreskowe wektorowe
Puppeteer wydrukuje to, co wygeneruje strona, ale geometria kodu, strefy ciszy i rozmiar dla drukarki termicznej nadal należą do aplikacji.
Ponad 30 wbudowanych symbolik (QR, GS1-128, PDF417, DataMatrix, …) Zależy od biblioteki kodów kreskowych na stronie, wyboru SVG/canvas i rozmiaru wydruku gPdf
Obsługa fontów CJK Wbudowany NotoSans CJK; automatyczny dobór glifów zastępczych Fonty zainstalowane w kontenerze; wymaga konfiguracji systemu operacyjnego gPdf
Wierność układu HTML/CSS Nie dotyczy — gPdf przyjmuje JSON, nie HTML Najwyższa klasa. Generuje dowolną stronę internetową. Puppeteer
Najlepszy do web→PDF w stylu zrzutu ekranu Nie Tak Puppeteer
Cena katalogowa przy 100 000 jednostronicowych dokumentów
Puppeteer sam w sobie jest darmowy. Płatnym obszarem jest usługa Chromium, którą trzeba wokół niego zbudować.
5 USD/miesiąc; plan Basic obejmuje 100 000 stron Brak opłaty licencyjnej; płacicie za hosting, przechowywanie, monitoring i czas inżynierów gPdf
Koszt posiadania w produkcji Hostowane API na edge, wizualny proces Studio, szablony, fonty, prymitywy kodów kreskowych, ścieżki PDF/A/e-faktury Kontenery Chromium, pule rozgrzewkowe, pojemność regionalna, szablony stron, fonty, ponowienia i obserwowalność gPdf
Determinizm (to samo wejście → te same bajty) Tak — bajtowo identyczny wynik między izolatami Nie — hinting fontów i rasteryzacja Chromium zmieniają się między wersjami gPdf

Co kiedy wybrać

Wybierz gPdf, gdy
  • Generujecie ustrukturyzowane dokumenty: faktury, etykiety wysyłkowe, zestawienia, paski płacowe albo bilety.
  • Potrzebujecie generowania w jednocyfrowych milisekundach dla interaktywnego procesu, np. podglądu przed wysłaniem.
  • Potrzebujecie zgodności archiwalnej PDF/A albo unijnego wyjścia e-faktury Factur-X / ZUGFeRD.
  • Macie dość presji pamięci Chromium, kosztu pul rozgrzewkowych albo kaskad limitów czasu przy zimnym starcie.
  • Chcecie bajtowo identycznych, deterministycznych PDF-ów do testów albo audytu.
  • Generujecie na edge i potrzebujecie ponad 300 punktów PoP, nie 3-6 regionów.
Wybierz Puppeteer, gdy
  • Konwertujecie dowolne żywe strony internetowe: strony docelowe, artykuły, zrzuty marketingowe.
  • Źródłem odniesienia dokumentu jest HTML/CSS, który już poprawnie działa w przeglądarce, i nie chcecie przepisywać go na JSON.
  • Generujecie bogate wizualizacje JavaScript po stronie klienta, np. wykresy i panele, które potrzebują prawdziwej przeglądarki.
  • Wolumen jest mały (<1000 generowań dziennie) i opóźnienie ani koszt pojedynczego generowania nie są istotne.
  • Potrzebujecie pikselowej zgodności między DOM na ekranie a PDF z powodów prawnych lub dowodowych.
Możliwości

gPdf to API JSON do PDF działające na edge, zbudowane dla wysokowolumenowych faktur, dokumentów, etykiet wysyłkowych, kodów kreskowych, PDF/A i e-faktur. Renderowanie PDF w milisekundach na globalnej infrastrukturze edge — zoptymalizowane pod przewidywalne generowanie dokumentów klasy przemysłowej. Cennik na poziomie infrastruktury, wystarczająco niski, by zastąpić budowę i utrzymanie własnej infrastruktury PDF.

Możliwości

Puppeteer jest świetny, gdy produktem jest strona internetowa

Puppeteer steruje prawdziwym Chromium. To jego supermoc. Jeśli źródłem odniesienia jest istniejąca strona HTML, panel z wykresami JavaScript, prawny zapis wygenerowanej aplikacji albo eksport w stylu zrzutu ekranu, Puppeteer często jest właściwym wyborem produktowym.

Pytanie brzmi, czy Państwa PDF naprawdę jest stroną internetową, czy ustrukturyzowanym dokumentem biznesowym. Faktury, etykiety wysyłkowe, zestawienia, paragony, bilety i formularze zwykle pochodzą z danych, nie z żywego DOM. Dla takich procesów uruchamianie całej przeglądarki bywa większą architekturą, niż dokument potrzebuje.

Ten sam artefakt, inna granica produktu

Puppeteer zamienia HTML w drukowany PDF przez Chromium. Aplikacja posiada szablony HTML, reguły CSS do druku, instalację fontów, środowisko uruchomieniowe przeglądarki, pojemność workerów, ponowienia i wdrożenie regionalne.

gPdf zamienia ustrukturyzowany JSON bezpośrednio w PDF. Aplikacja wysyła DocumentRequest albo template_id + data; generator na edge odpowiada za wykonanie układu, wbudowane fonty, prymitywy kodów kreskowych, profile PDF/A i pakietowanie e-faktury. Nie ma procesu przeglądarki, kaskady CSS ani kontenera Chromium do utrzymywania w gotowości.

Dopasowanie produktu: przechwycenie strony vs generowanie dokumentów

Wybierzcie Puppeteer, gdy dokument musi wyglądać dokładnie jak istniejąca strona web albo gdy JavaScript po stronie klienta tworzy finalny stan wizualny. Dotyczy to archiwów webowych, dynamicznych paneli, raportów mocno opartych na DOM i procesów, w których przepisanie układu na JSON byłoby bardziej ryzykowne niż korzystne.

Wybierzcie gPdf, gdy produktem jest generowanie dokumentów: etykieta wysyłkowa, faktura, bilet, zestawienie, certyfikat, paragon albo pakiet zgodności, który ma być generowany z czystych danych w ten sam sposób za każdym razem.

Czas wdrożenia: debugowanie CSS do druku vs szablony API

Puppeteer startuje szybko, gdy HTML już istnieje. Czas wdrożenia pojawia się później: CSS do druku, podziały stron, instalacja fontów w kontenerach, skrajne przypadki nagłówków i stopek, rozmiary kodów kreskowych oraz dryf wersji przeglądarki.

gPdf zaczyna od ustrukturyzowanego szablonu. Zespoły mogą pisać JSON bezpośrednio, użyć AI do szkicu układu zgodnego ze schematem albo użyć gPdf Studio, żeby wizualnie dodawać i przeciągać tekst, tabele, obrazy, kształty, nagłówki, stopki i kody kreskowe. Po zapisaniu szablonu wywołania produkcyjne mogą pozostać template_id + data.

Model ceny: darmowa biblioteka automatyzacji vs utrzymywana flota przeglądarek

Puppeteer nie ma opłaty licencyjnej. To nie znaczy, że produkcyjny serwis PDF oparty na Puppeteer jest darmowy.

Koszt to serwis wokół Chromium:

  • Kontener albo środowisko bezserwerowe dla binariów przeglądarki.
  • Pule rozgrzewkowe albo kolejki do absorpcji zimnych startów.
  • Zapas pamięci dla stron, fontów, obrazów i bajtów PDF.
  • Wdrożenie regionalne, jeśli magazyny lub klienci są globalni.
  • Monitoring, ponowienia, aktualizacje przeglądarki i poprawki bezpieczeństwa.

gPdf wycenia bezpośrednio obszar generowania PDF. Plan Basic zaczyna się od 5 USD/miesiąc za 100 000 stron, a publiczna matematyka za stronę startuje od 0,00005 USD za stronę. Nie ma miejsc użytkowników, osobnych opłat za test/prod ani puli Chromium do utrzymywania.

Generowanie na edge zmienia kształt latencji i kosztu

W Puppeteer przeglądarka zwykle działa tam, gdzie ją hostujecie. Jeśli magazyn, klient albo zadanie serwerowe jest daleko od tego regionu, ścieżka generowania zawiera opóźnienie sieci plus pracę przeglądarki. Dodanie regionów oznacza duplikację usługi przeglądarkowej, procesu wdrożenia, monitoringu i planu pojemności.

gPdf działa na izolatach V8 Cloudflare Workers. Dla ustrukturyzowanych PDF-ów generator jest wystarczająco mały, by działać blisko wywołującego zamiast centralizować każde generowanie w jednym regionie. Efekt biznesowy to nie tylko szybsze p50; to usunięcie regionalnej floty Chromium z produktu.

Funkcje produktu, które zwykle rozstrzygają porównanie

Dla dokumentów operacyjnych lista funkcji ma taką samą wagę jak surowe generowanie:

  • Natywne elementy kodów kreskowych dla etykiet wysyłkowych, biletów i dokumentów magazynowych.
  • Wbudowany dobór fontów zastępczych dla CJK i tekstu wielojęzycznego.
  • Profile PDF/A dla procesów archiwalnych.
  • Pakietowanie e-faktur Factur-X/ZUGFeRD.
  • PDF-y chronione hasłem i kontrola metadanych na wyższych planach.
  • Wizualna iteracja układu przez gPdf Studio.

Puppeteer może obsłużyć wiele z tych rzeczy przez kod strony, konfigurację przeglądarki albo przetwarzanie po wygenerowaniu. Pytanie brzmi, czy Państwa zespół chce posiadać ten stos.

Kiedy Puppeteer nadal jest właściwą odpowiedzią

Jest kategoria, w której gPdf nie konkuruje: dowolna konwersja HTML do PDF. Jeśli dokument jest już wygenerowany jako strona, źródłem odniesienia projektu jest HTML i potrzebujecie prawdziwej przeglądarki do wykonania JavaScript albo zgodności z DOM, Puppeteer pozostaje właściwym narzędziem.

Jeśli obciążenie jest małe, a opóźnienie nie jest ważne, koszt operacyjny również może być akceptowalny. Kilka wewnętrznych eksportów dziennie nie uzasadnia przepisywania stabilnego HTML na JSON.

Kształt migracji

Dla zespołów przenoszących fakturę albo etykietę wysyłkową z Puppeteer do gPdf migracja zwykle wygląda tak:

- // Before: render an HTML template through Chromium
- const browser = await puppeteer.launch({ headless: 'new' });
- const page = await browser.newPage();
- await page.setContent(invoiceHtml);
- const pdf = await page.pdf({ format: 'A4' });
+ // After: POST the structured DocumentRequest
+ const res = await fetch('https://api.gpdf.com/api/v1/template-render', {
+   method: 'POST',
+   headers: { Authorization: `Bearer ${KEY}`, 'Content-Type': 'application/json' },
+   body: JSON.stringify({ template_id: 'invoice-v2', data }),
+ });
+ const pdf = Buffer.from(await res.arrayBuffer());

Praca nie leży w samym wywołaniu API; leży w jednorazowym przygotowaniu szablonu. Potem każde generowanie to jeden HTTPS POST.

Powiązane scenariusze generowania PDF

Zespoły porównujące Puppeteer i gPdf zwykle najpierw rozstrzygają, czy potrzebują pełnej przeglądarki, czy kontrolowanego generatora dokumentów. Dla dokumentów operacyjnych warto zobaczyć API JSON do PDF, API PDF faktur, API etykiet wysyłkowych i API kodów kreskowych GS1. Dla kosztu i opóźnień przy skali pomocny jest artykuł o renderowaniu PDF na edge.

FAQ

Czy Puppeteer jest darmowy?

Puppeteer jest darmowy jako biblioteka. W produkcji kosztem jest usługa przeglądarkowa: kontenery, pamięć, zimne starty, pojemność regionalna, monitoring, ponowienia i utrzymanie.

Czy gPdf generuje dowolne strony HTML?

Nie. gPdf jest natywny dla JSON. Jeśli źródłem odniesienia jest dowolny HTML albo żywa strona internetowa, Puppeteer jest lepszym dopasowaniem.

Dlaczego porównywać Studio z Puppeteer?

Bo wiele zespołów używa HTML częściowo dlatego, że projektanci i programiści widzą wynik. gPdf Studio daje ustrukturyzowanym szablonom PDF wizualny obszar edycji bez zmiany środowiska uruchomieniowego w przeglądarkę.

Zobacz też