Apex w 2026: PDF bez Visualforce i bez hacków
- 3 stycznia 2026
Jeszcze w 2025 klienci w Polsce wydawali po kilkanaście tysięcy złotych na rozwój customowych generatorów PDF, bo Apex nie miał natywnego wsparcia dla renderowania plików. W Spring ’26 pojawia się jednak funkcja, która eliminuje cały ten techniczny dług: Blob.toPdf. To ma bezpośredni wpływ na zespoły delivery, bo usuwa jedną z ostatnich barier automatyzacji dokumentów bez Visualforce. W tym artykule pokazuję, jak działa nowe API, gdzie przyspiesza implementacje i jak może zmienić strategie projektowania dokumentów w orgach enterprise. Jeśli tworzysz faktury, oferty, umowy lub automaty generujące setki plików dziennie, ta zmiana dotyczy Twojej pracy.
Nowy mechanizm Blob.toPdf działa jako wrapper na silnik PDF używany dotąd przez Visualforce, ale wywoływany natywnie z poziomu Apex. Oznacza to, że Apex przekazuje HTML w formie Blob, a platforma renderuje go zgodnie z tymi samymi regułami, które obowiązywały w trybie renderAs=pdf na Visualforce. Pod spodem nadal działa parser wk HTML z obsługą CSS dostosowaną do PDF, dlatego deweloperzy muszą liczyć się z ograniczeniami typowymi dla silnika Visualforce PDF. Zmiana kluczowa polega jednak na tym, że nie trzeba już tworzyć, deployować i utrzymywać samych stron VF tylko po to, żeby zyskać dostęp do renderowania. Dla architektów jest to silny sygnał: Salesforce konsoliduje podstawowe funkcje wokół Apex i redukuje zależność od warstwy prezentacji.
Dla zespołów technicznych to czysty zysk. Upraszcza to pipeline CI/CD oraz usuwa jedną z bolesnych edge-case dependencies, które utrudniały migracje do struktur headless. Jednocześnie PDF generowany przez Blob.toPdf nie wymaga HTTP calloutów, co eliminuje zarówno opóźnienia, jak i ryzyko błędów związanych z limitami. To z kolei ma znaczenie dla automatyzacji w systemach wysokiej dostępności, o których często mówimy w kontekście transformacji architektury opisanej np. w analizie skalowania Agentforce. W Spring ’26 PDF przestaje być osobnym modułem, a staje się naturalną częścią logiki usługowej.
W polskich orgach najczęściej automatyzuje się generowanie umów, regulaminów, raportów finansowych, dokumentów serwisowych oraz plików wysyłanych do Outlookowych łańcuchów decyzyjnych. Do tej pory większość firm korzystała z Visualforce, Conga, Nintex lub własnych mikrousług renderujących PDF. Blob.toPdf pozwala realnie zejść z kosztów utrzymania i przyspieszyć development, ale tylko wtedy, gdy HTML dokumentu nie jest ekstremalnie skomplikowany. Renderer nie obsługuje całego CSS3, co sprawia, że proces standaryzacji layoutów jest obowiązkowy.
Ciekawą implikacją dla firm jest możliwość generowania PDF w Batch Apex bez ryzyka callout limits. To otwiera drogę do masowych procesów, takich jak roczne replikacje dokumentów księgowych, wysyłka plików dla partnerów B2B czy cykliczne raporty SLA. Wcześniej podobne operacje wymagały delegowania do systemów zewnętrznych lub Flow z elementami Action wywołujących API. Ograniczenie zależności od integracji jest spójne z ruchem Salesforce w stronę mocniejszego core automation, o czym pisaliśmy przy specyfikacji automatyzacji procesów w case automation opartym o Agentforce. Blob.toPdf dodaje więc brakujący klocek do pełnej autonomii generowania dokumentów wewnątrz platformy.
Różnica istotna z perspektywy działów prawnych to fakt, że przetwarzanie PDF odbywa się w całości w tym samym trust boundary co pozostałe operacje Apex. Dla organizacji podlegających RODO eliminuje to część ryzyk, które pojawiały się przy wysyłaniu danych do zewnętrznych mikrousług renderujących dokumenty. To szczególnie istotne przy danych wrażliwych w sektorze finansów i opieki zdrowotnej, gdzie PDF-y często zawierają osobowe dane klientów. Funkcja natywna zmniejsza liczbę punktów styku z zewnętrznymi procesami oraz upraszcza audyty bezpieczeństwa.
Z architektonicznego punktu widzenia Blob.toPdf to sygnał, że Salesforce kontynuuje trend przerzucania funkcji z warstwy UI do backendu Apex. To podobny kierunek jak wprowadzenie Server-Side Rendering dla LWC czy rosnące możliwości Apex SDK wykorzystywanego w automatyzacjach Agentforce, gdzie logika serwerowa przejmuje coraz większą odpowiedzialność. Dla dużych organizacji oznacza to odejście od historycznych PDF pipelines opartych na Visualforce Pages i wzrost znaczenia usług renderujących jako części logicznych modułów domenowych.
Jednocześnie trzeba pamiętać o limitach tego rozwiązania. Pod silnikiem nadal działa PDF renderer Visualforce, a więc nie ma mowy o pełnym CSS, HTML5 czy dynamicznych layoutach znanych z narzędzi typu Puppeteer. Dlatego w projektach enterprise warto planować uproszczone szablony, które łatwo utrzymać i które nie wywołują błędów renderowania w dużych wolumenach. W przeciwnym razie część zespołów nadal będzie zmuszona utrzymać mikrousługi zewnętrzne do bardziej zaawansowanych PDF. To realistyczny kompromis, który architekci muszą uwzględnić w roadmapach.
Dobrym momentem na adopcję jest przebudowa istniejących procesów lub standaryzacja Flow i Apex po modernizacji orga. Jeśli firma już przygotowuje się do większej transformacji opartej o AI i automatyzację, tak jak pobieżnie omawialiśmy w kontekście polskich SMB w analizie strategii AI na Salesforce, włączenie natywnej generacji PDF ogranicza złożoność przyszłych zmian. To element skalowalności architektury, który mimo że nie jest spektakularny, usuwa jedną z najbardziej upierdliwych barier historycznych Salesforce. W dłuższej perspektywie może to przyspieszyć rezygnację z Visualforce w kolejnych obszarach.
Najłatwiejsze do wdrożenia scenariusze to proste dokumenty: potwierdzenia, protokoły, podstawowe faktury, raporty custom bez skomplikowanego layoutu. W tych przypadkach Blob.toPdf można podpiąć praktycznie bez zmian w strukturze orga, a kod HTML wygenerować z templatem w Apex lub Custom Metadata. To szybkie oszczędności kosztów i zredukowanie zależności od narzędzi zewnętrznych. Warto zacząć od małych procesów, gdzie PDF jest dodatkiem, a nie core elementem workflow.
Drugi etap to konwersja istniejących PDF generowanych przez Visualforce. Przeniesienie ich do Blob.toPdf pozwala zredukować surface area Visualforce, co jest korzystne zarówno pod kątem security review, jak i przygotowania do przyszłych zmian strukturalnych. W tym kroku organizacje powinny zaplanować minimalne refaktory layoutów, aby dostosować je do ograniczeń HTML PDF. Dobrą praktyką jest unifikacja stylów i stosowanie prostych, powtarzalnych szablonów.
Trzecia warstwa to nowe procesy masowe: batch, nightly jobs, automatyzacje generujące setki dokumentów. Tu warto testować limity i sprawdzić, jak zachowuje się renderer przy dużych wolumenach i zróżnicowanych danych. Zespoły, które wcześniej szkoliły się w optymalizacji batch processingu, zauważą, że generowanie PDF bez HTTP calloutów zmienia dynamikę pipeline. Dla architektów oznacza to możliwość rezygnacji z dodatkowych workerów lub integracji zewnętrznych, co upraszcza koszty utrzymania i dokumentację operacyjną.
Spring ’26 sprawia, że generowanie PDF przestaje być edge casem technologii Salesforce i staje się jej natywną częścią. Dla praktyków oznacza to mniej warstw, mniej komplikacji i bardziej przewidywalne procesy automatyzacji dokumentów. Warto zastanowić się, które z istniejących pipeline można zmigrować i jak uprości to architekturę Twojego orga w dłuższej perspektywie.