Spłaszcz PDF
w przeglądarce.
Zablokuj interaktywne pola formularza i adnotacje jako statyczną treść. Odbiorcy widzą wartości, ale nie mogą ich zmienić. Bez wysyłania.
Sprawdź sam: otwórz DevTools → zakładkę Network → upuść plik. Zobacz, że nie ma żadnych przesłań.
Trzy kroki. Twój plik nigdy nie opuszcza tej karty.
Upuść wypełniony PDF
Wybierz wypełniony formularz. Wczyta się do pamięci przeglądarki, nie na serwer.
Kliknij Spłaszcz
Wpiekamy wartości pól i adnotacje wprost w stronę, usuwając warstwę interaktywną.
Pobierz zablokowaną kopię
Wynik wygląda identycznie, ale odbiorcy nie mogą zmienić wartości. Oryginał pozostaje nietknięty.
Wpiec formularz w stronę
Powody, by spłaszczyć (flatten) PDF, zwykle dotyczą zamrożenia tego, co aktualnie widać. Formularz podatkowy wypełniony przez wpisywanie w PDF idzie do księgowego — odbiorca powinien widzieć odpowiedzi, ale nie mieć możliwości ich edycji. Podpisana umowa została zakończona wypełnionym polem podpisu — przy przekazywaniu pole nie powinno pozostać klikalnym elementem formularza, który ktoś nadpisze. Zeskanowany dokument wrócił z adnotacjami i pieczęciami i ma krążyć do szerszej grupy, a warstwa adnotacji nie ma pozostać edytowalna. Drukowana broszura została złożona w InDesignie z interaktywnymi widgetami formularza, które przy układzie do druku mają wyglądać jak statyczne placeholdery. Zadanie tutaj jest małe i przewidywalne: wziąć PDF z polami formularza lub adnotacjami i przekształcić ich aktualny stan wizualny w trwałą zawartość strony.
Co dostajesz z powrotem, to PDF, który na ekranie wygląda tak samo, ale nie ma już interaktywnych elementów. Każde wypełnione pole zachowuje swoją wartość jako tekst statyczny. Każde puste staje się tym, co pokazywało jego tło (często szary prostokąt, czasem nic widocznego). Adnotacje i pieczęcie wpiekają się podobnie w stronę.
Co flatten faktycznie robi
PDF przechowuje pola formularza jako oddzielną warstwę nad stroną. Sama strona nie wie nic o zawartości formularza; widget pola kładzie się na niej w czasie wyświetlania, a aktualna wartość renderuje się w widocznym obszarze. Spłaszczenie zwija tę warstwę — przechodzi każde pole, łapie jego stan wizualny w momencie operacji, rysuje to ujęcie jako zwykłą zawartość strony (tekst, linie, checkboxy jako ścieżki) i potem usuwa samą definicję formularza.
Wynik to jedna ciągła statyczna strona, w której widoczne jest tym, co narysowane. W dokumencie nie ma już «formularza». Czytelnik nie może rozpoznać, że kiedyś były pola, a żadne narzędzie PDF nie zedytuje wartości bez OCR strony od zera.
Co się spłaszcza, a co nie
- Pola formularza (AcroForm). Pola tekstowe, checkboxy, przyciski radio, listy rozwijane, listbox, pola podpisu, przyciski. Wszystko to się spłaszcza — aktualna wartość lub wybór staje się statyczną zawartością strony.
- Puste pola zachowują wygląd. Niewypełniona ramka tekstowa zachowuje obrys i (często) linię placeholdera; ten wizual zostaje jako narysowane kształty. Niezaznaczony checkbox zostaje pustym kwadracikiem.
- Pola obliczane łapią aktualną wartość. Pola z formułami (funkcja Acrobat Pro) zamarzają na aktualnie wyświetlanej wartości — formuła po flatten znika.
- Adnotacje mogą się spłaszczyć lub nie. Notatki komentarzy, podświetlenia i pieczęcie zależą od viewer'a, który je napisał; form.flatten() w pdf-lib celuje konkretnie w AcroForm. Jeśli potrzebujesz, by adnotacje też zniknęły, słuszna droga to pełny eksport z viewer'a źródłowego.
- Istniejąca statyczna zawartość strony nie jest ruszana. Tekst, obrazy, układ, zakładki przenoszą się bez zmian.
Co przetrwa, a co nie
- Widoczna zawartość pozostaje taka sama. Tekst, obrazy, układ, fonty i wartości formularza takie, jakie wyglądały w momencie spłaszczenia — zachowane dokładnie.
- Zakładki, linki, struktura strony przenoszą się. Spłaszczenie celuje w warstwę formularza, nie w spis dokumentu.
- Interaktywność formularza znika. Już żadnych klikalnych pól, wyborów z list rozwijanych, «tab do następnego pola». O to chodzi w tej operacji.
- Podpisy cyfrowe tracą ważność. Każda modyfikacja dokumentu, w tym spłaszczenie, zrywa powiązania podpisu. Jeśli dokument jest podpisany i podpis ma pozostać ważny — nie spłaszczaj; zrób duplikat pliku i spłaszcz duplikat.
- Operacja jest jednokierunkowa. Po spłaszczeniu nie ma «odspłaszczenia». Definicja formularza znikła. Aby ponownie edytować, trzeba odtworzyć pola od zera w edytorze PDF wspierającym authoring formularzy.
Jeśli coś wygląda nie tak
- «Nic się nie stało» — brak pól do spłaszczenia. PDF nie zawierał AcroForm. Narzędzie w tym przypadku ponownie zapisuje plik bez zmian; wynik jest funkcjonalnie identyczny z wejściem. By sprawdzić obecność pól, otwórz w Adobe Reader i wybierz «Podświetl istniejące pola» — jeśli nic się nie podświetla, nie ma czego spłaszczać.
- Niektóre adnotacje się nie wpiekły. Przejście form.flatten() spłaszcza tylko widgety AcroForm. Adnotacyjne overlay (karteczki, marker, rysunek odręczny) wymagają innej operacji. Dla nich reeksportuj z oryginalnego viewer'a lub najpierw skonsoliduj przez edit-pdf.
- Wypełnione wartości po spłaszczeniu wyglądają źle. Spłaszczona reprezentacja łapie to, co było rysowane w momencie operacji. Jeśli formularz miał podstawienie fonta lub pole wyświetlało się inaczej niż oczekiwano, bake to złapie. Sprawdź najpierw źródło w viewerze — flatten zachowa to, co tam widzisz.
- PDF jest zaszyfrowany. Najpierw przepuść przez unlock-pdf; zaszyfrowane PDF nie podlegają modyfikacji.
Częste powody do spłaszczenia
- Wysłać wypełniony formularz komuś, kto nie powinien go edytować. Deklaracje podatkowe do księgowego, umowy do prawnika, formularze HR — flatten blokuje wartości.
- Połączyć wypełnione formularze w jeden dokument archiwalny. Różne kopie tego samego formularza wypełnione przez różne osoby, scalone w paczkę. Spłaszcz każdą przed scaleniem, żeby każda kopia zachowała wartości bez kolizji ID pól.
- Przygotowanie do druku lub publicznej dystrybucji. Drukowane PDF i tak nie honorują interaktywności, ale viewer otwierający plik przed drukiem może pokazać pola inaczej niż wydruk. Spłaszcz wcześniej, by ekran i strona się zgadzały.
- Usunąć zachowanie wypełnialne z szablonu. Szablon utworzony z przykładowymi wartościami w polach, gotowy do wysyłki jako gotowy przykład. Flatten zamraża wartości przykładowe.
Notatki praktyczne
- Spłaszczaj na końcu. Jeśli musisz też dodać numerację stron, znak wodny lub kompresję — zrób te operacje najpierw, dopóki dokument jest jeszcze edytowalny. Po spłaszczeniu zmiany zależne od świadomości formularza są niemożliwe.
- Zachowaj oryginał. Spłaszczona wersja zastępuje funkcjonalność, której się nie odzyska. Zachowaj edytowalne źródło na wypadek aktualizacji wartości później, potem ponownie spłaszcz.
- Najpierw przetestuj na jednej stronie. Jeśli dokument jest duży i nie jesteś pewien, jak wyjdzie bake, oddziel próbną stronę przez split-pdf, spłaszcz próbkę, sprawdź wynik w viewerze, potem spłaszcz cały dokument.
- Plik źródłowy pozostaje nietknięty. Pobierany jest nowy spłaszczony PDF; źródło na dysku się nie zmienia.
Co dzieje się z twoim plikiem
Spłaszczanie działa w twojej przeglądarce. Otwórz DevTools i obserwuj zakładkę Network podczas operacji — żadnych żądań wychodzących z zawartością pliku. PDF zostaje na dysku; spłaszczona wersja to nowe pobranie obok.
Najczęstsze pytania
Co znaczy spłaszczyć (flatten)?
Spłaszczanie zmienia warstwy interaktywne — pola formularzy, adnotacje, komentarze — w statyczną treść strony. Wizualnie nic się nie zmienia, ale wartości stają się częścią strony i nie da się ich już edytować.
Po co spłaszczać PDF?
Aby wysłać finalną, nieedytowalną kopię: podpisaną umowę, wypełniony formularz podatkowy, zaakceptowaną ofertę. Spłaszczanie zapobiega zmianom wartości — przypadkowym i celowym.
Czy dokument będzie wyglądał inaczej?
Nie — spłaszczone strony wyglądają identycznie. Zmiana jest strukturalna, nie wizualna: pola stają się wpieczonym tekstem, a adnotacje wpieczonymi znakami.
Czy działa na PDF bez formularzy?
Tak. Bez pól i adnotacji spłaszczanie sprowadza się do „zapisu na nowo". Najbardziej przydaje się, gdy chcesz zablokować pola formularza lub karteczki.
Dokąd trafia mój plik?
Donikąd. Spłaszczanie odbywa się w całości w tej karcie. Można sprawdzić w DevTools → Network: nic nie jest wysyłane.