API Shareglint zamienia szablon HTML i CSS w jednostronicowy, wektorowy PDF: certyfikat, bilet na wydarzenie, identyfikator, etykietę wysyłkową, jednostronicową fakturę albo kupon. Projekt zapisujesz raz, a potem każdy PDF to jedno zapytanie HTTP z polami, które się zmieniają — albo jedno zlecenie hurtowe dla całego arkusza. Zakres jest celowo wąski: każdy PDF z szablonu ma dokładnie jedną stronę o rozmiarze szablonu, bez podziału na strony, nagłówków i stopek. Jeśli potrzebujesz raportu na 12 stron, to nie jest właściwe narzędzie — niżej piszemy, czego użyć zamiast niego.
Co dostajesz
- Jedna strona o rozmiarze szablonu. Strona ma szerokość i wysokość szablonu w pikselach CSS przy 96 px na cal, bez marginesów i z wydrukowanymi tłami. Szablon 1123×794 to A4 w poziomie, 794×1123 to A4 w pionie, 816×1056 to US Letter. Bok szablonu może mieć do 4 000 px.
- Tekst wektorowy. Twój HTML drukuje Chrome, więc tekst jest ostry przy każdym powiększeniu, da się go zaznaczyć i przeszukać. Zdjęcia i logotypy zostają obrazkami w swojej rozdzielczości.
- Ten sam szablon jako PNG. Poproś o
"format": "png", a ten sam projekt wróci jako obrazek do maila albo posta w social media;pdfdaje wersję do druku. Każdy format to osobny plik i osobny render. - Jeden limit. PDF zużywa jeden render, tak jak obrazek. Te same wartości w tym samym formacie nie kosztują nic: wraca istniejący plik.
Formaty dostępne na każdym koncie: PNG, JPEG, WebP, PDF, GIF, MP4. Znak wodny planu Free trafia też do PDF-ów; plany płatne od $9 miesięcznie go nie mają.
Jeden PDF na zapytanie
Zapisz szablon raz — własny HTML i CSS z polami {{ field }}, kopię wbudowanego szablonu albo projekt z edytora wizualnego — a potem go renderuj:
curl -X POST "https://shareglint.com/v1/images?wait=true" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"template": "certificate",
"format": "pdf",
"modifications": {
"name": "Amelia Nowak",
"course": "Projektowanie API — kurs zaawansowany",
"date": "4 listopada 2026",
"issuer": "Daniel Okafor"
}
}'
Z ?wait=true odpowiedź zawiera url gotowego pliku (z końcówką .pdf, serwowanego jako application/pdf); bez tego parametru dostajesz id do odpytywania albo webhook po zakończeniu. Wbudowane szablony certificate, event-ticket i event-badge renderują się w każdym presecie rozmiaru, ale do druku zwykle przyda się własny szablon w rozmiarze papieru.
Szablon na A4 w poziomie zaczyna się tak — rozmiar strony to rozmiar szablonu, więc CSS układa tylko to, co ma się na niej znaleźć:
<div class="page">
<p class="kicker">Certificate of completion</p>
<h1 data-autofit>{{ name }}</h1>
<p>has completed <strong>{{ course }}</strong> on {{ date }}.</p>
<p class="sign">{{ issuer }}</p>
</div>
.page { width: 1123px; height: 794px; padding: 72px; box-sizing: border-box;
font-family: Roboto, sans-serif; background: #fffaf2; color: #1f2937; }
h1 { font-size: 64px; }
Zapisz go przez POST /v1/templates z width: 1123 i height: 794. data-autofit zmniejsza długie nazwisko tak, żeby zmieściło się w swoim polu, zamiast zawijać je na podpis. Kroje pisma to rodziny zainstalowane na naszym rendererze (GET /v1/fonts); własnego pliku z fontem nie wgrasz.
Cały arkusz naraz
Dla grupy 300 kursantów albo konferencji na 2000 osób wyślij jedno zlecenie hurtowe zamiast 300 zapytań:
curl -X POST "https://shareglint.com/v1/batches" \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"template": "certificate",
"format": "pdf",
"csv_url": "https://docs.google.com/spreadsheets/d/…/edit?usp=sharing"
}'
Kolumny trafiają do pól po nazwie (wielkość liter i spacje nie mają znaczenia; można je też przypisać jawnie przez columns). Kolumna filename nadaje nazwę każdemu plikowi w ZIP-ie, a kolumna id wraca przy wyniku każdego wiersza. Wiersze renderują się w tle; GET /v1/batches/{id} pokazuje postęp, a na końcu adres każdego PDF-a i jedno archiwum ZIP. Limit wierszy na zlecenie według planu: Free 50, Starter 500, Pro 1 000, Scale 2 000, Business 5 000. Każdy wiersz to jeden render, a wiersze już wyrenderowane z tymi samymi wartościami są darmowe. Strona Bulk w panelu robi to samo z wgranego pliku CSV, z darmowym podglądem pierwszych wierszy. Formaty CSV i mapowanie kolumn opisuje poradnik o renderowaniu hurtowym (po angielsku).
Linki zamiast plików
Podpisany adres renderuje PDF przy pierwszym otwarciu: https://shareglint.com/i/{account}/{template}.pdf?name=…&s=…, gdzie s to HMAC liczony twoim sekretem do podpisów. Rozszerzenie jest częścią podpisu, więc link podpisany dla .png nie otworzy PDF-a. To dobre rozwiązanie dla linków „pobierz bilet” w mailu: żaden plik nie powstaje, dopóki odbiorca nie kliknie, a drugie kliknięcie obsługuje pamięć podręczna.
Czego nie robi
Precyzja w sprawie ograniczeń oszczędzi ci później migracji:
- Żadnych dokumentów wielostronicowych z szablonów. Nie ma podziału na strony, powtarzanych nagłówków, numerów stron ani tabel przelewających się na drugą stronę. Treść, która nie mieści się w wysokości szablonu, zostaje ucięta, a nie przeniesiona na kolejną stronę.
- PDF-y ze zrzutów to wycinki, nie dokumenty.
POST /v1/screenshotsz"format": "pdf"ifull_pagedrukuje publiczną stronę internetową jako kilka stron wielkości okna przeglądarki. To wystarczy, żeby zarchiwizować wygląd strony, ale nie jest dokumentem podzielonym na strony. - Bez formularzy, podpisów, PDF/A i łączenia plików. Wynikiem jest wydrukowana strona, a nie formularz do wypełnienia, i nie łączymy plików.
- Bez własnych krojów pisma. Tylko zainstalowane rodziny.
Do długich dokumentów użyj usługi stworzonej do paginacji — DocRaptor, PDFShift czy plany PDF APITemplate.io obsługują podział na strony i nagłówki — albo zrób to sam przez page.pdf() z Puppeteera, z opcjami format, margin i displayHeaderFooter oraz regułami CSS @page — poradnik o PDF w Puppeteerze (po angielsku) omawia podziały stron, powtarzane nagłówki tabel i stopki z numerami stron. Puppeteer steruje tym samym silnikiem drukowania Chrome, którego używamy my; po prostu pozwala dokumentowi zająć tyle stron, ile potrzebuje.
Kiedy to właściwe narzędzie
API szablonów sprawdza się najlepiej przy jednostronicowych dokumentach robionych masowo z danych: każdy certyfikat, bilet czy etykieta ma ten sam układ i inne pola, projekt żyje w HTML-u, który możesz wersjonować, a każdy plik kosztuje jeden render. Typowe zastosowania:
- Certyfikaty ukończenia kursu wystawiane, gdy kursant kończy kurs, i wysyłane mailem jako link do PDF-a — zobacz certyfikaty i szablon certyfikatu.
- Bilety i identyfikatory na wydarzenia drukowane z eksportu rejestracji, z kodem QR każdego uczestnika (obrazkiem, który generujesz sam) w polu na obrazek.
- Etykiety wysyłkowe i produktowe w rozmiarze etykiety, prosto z systemu zamówień.
- Jednostronicowe faktury i paragony, w których pozycje mieszczą się na jednej stronie.
Ten sam projekt jako PNG obsłuży podgląd w mailu albo post, który go ogłasza. Plany i ceny za 1000 renderów są w cenniku; dokumentacja API opisuje każde pole, a strona API HTML do obrazka ma darmowy plac zabaw, w którym wypróbujesz układ, zanim go zapiszesz. Kilka certyfikatów bez kodu zrobisz w darmowym generatorze certyfikatów.