Ekstraktor tekstu z PDF
Wyodrębnij tekst z pliku PDF bez kopiowania strona po stronie. Zachowaj formatowanie akapitów. Eksportuj do TXT lub Markdown. Działa lokalnie w przeglądarce. Bezpłatnie.
-
1Wprowadź dane
Wpisz treść, wklej tekst lub załaduj plik z dysku. -
2Kliknij przycisk
Narzędzie natychmiast przetworzy Twoje dane w przeglądarce. -
3Pobierz wynik
Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
return "Wynik gotowy w 0.1s";
}
| Zawartość pliku | Ekstraktor odczyta? | Dlaczego / co z tym zrobić |
|---|---|---|
| Zwykły tekst (artykuły, raporty, umowy) | tak | tekst leży w warstwie tekstowej PDF; tryb „clean” scala nadmiarowe białe znaki, a „keep” zachowuje podziały wierszy |
| Liczba stron | często tak | odczytywana z metadanych dokumentu, jeśli zapisujący ją umieścił — kafelek „Strony” pokaże ją po przetworzeniu |
| Metadane dokumentu (tytuł, autor, program) | częściowo | są zapisane w nagłówku PDF i nie wymagają OCR — ale pamiętaj, że Twój PDF też je ma i je ujawnia |
| Tabele | częściowo | trafiają jako zwykły tekst — kolumny mogą się rozjechać, bo PDF nie przechowuje struktury tabeli |
| Tekst ze skanu (zeskanowane strony) | nie | skan to obraz bez warstwy tekstowej — wynik będzie pusty; potrzebny jest osobny program OCR |
| Zdjęcia, logo, wykresy | nie | narzędzie wyciąga wyłącznie tekst — grafiki zostają w pliku |
| Tekst zamieniony na krzywe (outline) | nie | litery zapisane jako kształty nie mają kodów znaków — do odczytu potrzebny OCR |
Wynik pusty albo krótszy niż oczekiwano? To niemal zawsze znak, że strona jest skanem — sprawdź, czy tekst w PDF da się zaznaczyć kursorem: jeśli tak, warstwa tekstowa istnieje i ekstraktor ją odczyta.
Warto wiedzieć — ekstrakcja tekstu z PDF
Czym jest warstwa tekstowa
PDF zapisuje nie tylko wygląd strony, ale (zwykle) także kody znaków — dzięki temu można kopiować tekst i wyszukiwać w dokumencie. Ekstraktor czyta właśnie tę warstwę, więc działa natychmiast i bez rozpoznawania obrazu.
Kiedy potrzebny jest OCR
Skan, zdjęcie dokumentu lub PDF „wydrukowany” z programów graficznych nie ma warstwy tekstowej. Wtedy ekstrakcja nic nie zwróci — potrzebne jest osobne rozpoznawanie obrazów (OCR), które zamieni piksele z powrotem na znaki.
Tryby „clean” i „keep”
Tryb „Wyczyść nadmiar białych znaków” scala wielokrotne spacje i puste linie oraz skleja słowy przeniesione na końcu wiersza — dobry do dalszej edycji. „Zachowaj podziały wierszy” zostawia układ z PDF, co bywa wygodne przy cytatach. Opcja podziałów stron wstawia znaczniki między strony.
Metadane a prywatność
PDF często zapisuje nazwisko autora, program i daty utworzenia. Przed wysłaniem dokumentu kontrahentowi warto to sprawdzić — ekstrakcja pokazuje, jak łatwo takie informacje odczytać. Wynik tekstu skopiujesz lub pobierzesz jako plik .txt.
Oceń to narzędzie:
Powiązane narzędzia
Inne narzędzia, które mogą Ci się przydaćEkstraktor tekstu z PDF – cały dokument w jednym kliknięciu
Kopiowanie tekstu ze skanowanego lub zabezpieczonego PDF może być frustrujące. Narzędzie używa PDF.js (biblioteka Mozilla) do parsowania struktury PDF i wyciągania tekstu wraz z kolejnością czytania, nagłówkami i akapitami – bez OCR dla cyfrowych PDF, z opcją OCR dla skanów.
Typy PDF i metody ekstrakcji
PDF cyfrowy (text-based PDF): tekst jest zapisany jako strumień glifów – PDF.js ekstrahuje go natychmiastowo bez OCR. Skanowany PDF (image-only): strony to obrazy – wymagany OCR (Tesseract.js, Tesseract.wasm). PDF z warstwą OCR: kombinacja – tekst dostępny z warstwy tekstowej.
Zachowanie formatowania
Kolejność czytania: PDF.js odtwarza kolejność tekstu na podstawie pozycji elementów (x,y coordinates). Kolumny: tekst dwukolumnowy może wymagać ręcznej korekty kolejności. Nagłówki: wykrywane na podstawie rozmiaru fontu. Tabele: eksportowane jako tekst – struktura tabeli jest tracona (użyj dedykowanego ekstraktor tabel).
Opcje eksportu
TXT (plain text): czysty tekst bez formatowania. Markdown: nagłówki (##), pogrubienia, listy. HTML: zachowanie struktury akapitów i nagłówków. Każda strona osobno: użyteczne dla długich dokumentów. Zakres stron: wybierz strony 1-10 z 200-stronnicowego dokumentu.
Ograniczenia i zabezpieczenia PDF
Hasło właściciela (DRM): blokuje ekstrakcję tekstu – narzędzie poinformuje o ochronie. Fonty niestandardowe/zaosadzone: znaki mogą być niepoprawnie mapowane. Formularze PDF: tekst pól formularza jest wyodrębniany osobno. Certyfikaty cyfrowe: nie wpływają na ekstrakcję tekstu.
Jak parser składa tekst z powrotem w całość
PDF nie jest formatem tekstowym, lecz zestawem instrukcji rysowania. Treść strony znajduje się w strumieniu zawartości, a operatory Tj, TJ, Td i Tm określają, gdzie i jaki glif ma zostać narysowany. Parser czyta ten strumień, zamienia identyfikatory glifów na znaki Unicode według mapy ToUnicode i zapamiętuje współrzędne każdego fragmentu osobno.
Dopiero po zebraniu wszystkich fragmentów możliwe jest odtworzenie układu. Fragmenty sortowane są najpierw po współrzędnej pionowej, a potem poziomej, scalane w wiersze, a następnie w akapity na podstawie odstępów między liniami. Nagłówki wykrywane są po rozmiarze i kroju fontu, a spacje wstawiane heurystycznie — na podstawie odległości między sąsiednimi fragmentami w tym samym wierszu.
Z tego wynikają dwa typowe zjawiska. Braki w mapie ToUnicode, np. w plikach tworzonych przez starsze programy lub z nietypowymi fontami, powodują, że zamiast liter pojawiają się inne znaki. Drugie to próg odległości, od którego parser uznaje, że w oryginale była spacja — w tekstach justowanych i w układzie kolumnowym bywa zawodny, stąd zlepione wyrazy albo podwójne odstępy. Wynik jest więc rekonstrukcją układu, a nie kopią pliku znak po znaku.
Przykład krok po kroku: dwukolumnowy artykuł z PDF-a
Weźmy cyfrowy PDF artykułu naukowego złożonego w dwóch kolumnach, bez zabezpieczeń, z poprawnie osadzonymi fontami.
- Otwórz plik w zwykłym podglądzie i spróbuj zaznaczyć kursorem fragment akapitu. Jeśli zaznaczenie działa i po skopiowaniu do edytora widać litery, masz PDF cyfrowy — OCR nie jest potrzebny.
- Wgraj plik do ekstraktora tekstu z PDF. Narzędzie najpierw sprawdza, czy strony zawierają warstwę tekstową. Dla skanu złożonego wyłącznie z obrazów wynik będzie pusty i wtedy trzeba włączyć OCR dla skanów.
- Zamiast całego dokumentu ustaw zakres stron — dla długiego pliku wystarczy pierwszy fragment, np. strony 1-10 z 200-stronicowego dokumentu. Eksport do TXT pozwoli szybko ocenić, czy kolejność wierszy jest poprawna.
- Przejrzyj wynik pod kątem kolumn. Parser sortuje wiersze po współrzędnej pionowej, więc fragmenty z lewej i prawej kolumny leżące na tej samej wysokości mogą trafić do jednej linii tekstu.
- Powtórz eksport z opcją każda strona osobno, tym razem do Markdown. Łatwiej wtedy ciąć kolumny, scalać akapity i zachować nagłówki jako znaczniki ##.
- Na koniec porównaj próbkę wyniku z oryginałem: pierwszy akapit, podpisy rysunków i fragment z liczbami. Popraw zlepione wyrazy, przeniesione końcówki wierszy i zdania rozcięte na granicy stron.
Objawy w wynikowym tekście, ich przyczyny i sposoby naprawy
| Objaw w wyniku | Prawdopodobna przyczyna | Co zrobić |
|---|---|---|
| Zlepione wyrazy, brak spacji | Spacje odtwarzane heurystycznie z odległości między fragmentami; kerning i justowanie | Wstaw spację po eksporcie do TXT albo popraw w edytorze |
| Puste strony w wynikowym pliku | Strony to obrazy bez warstwy tekstowej | Włącz OCR dla skanów |
| Ciągi przypadkowych znaków | Brak lub błędna mapa ToUnicode dla osadzonego fontu | Użyj OCR na wyrenderowanej stronie |
| Przeplatane wiersze z sąsiednich kolumn | Sortowanie po współrzędnej pionowej scala fragmenty z jednego poziomu | Eksport każdej strony osobno i ręczne cięcie kolumn |
| Tabela zamieniona w ciąg wierszy | Strumień nie zawiera informacji o strukturze tabeli | Skorzystaj z dedykowanego ekstraktora tabel |
| Nagłówki bez znaczników w Markdown | Rozmiar fontu nagłówka zbyt bliski tekstowi podstawowemu | Ustaw znaczniki ## ręcznie po eksporcie |
| Powtarzające się linie w treści | Nagłówki, stopki i numery stron na każdym poziomie strony | Usuń powtarzalne linie po eksporcie |
| Urwane zdania na granicy stron | Akapit podzielony między dwie strony | Scal akapit ręcznie po połączeniu plików |
Jak wycisnąć z ekstrakcji jak najlepszy wynik
- Najpierw sprawdź warstwę tekstową — jeśli w podglądzie da się zaznaczyć i skopiować akapit, OCR jest zbędny, a wynik będzie szybszy i dokładniejszy znakowo.
- Pracuj na wycinku dokumentu — ustaw zakres stron i oceń jakość na kilku stronach, zanim puścisz cały plik; oszczędzisz czas przy błędnym trybie.
- Dobierz format do dalszej obróbki — do edytora tekstu wybierz Markdown, do dalszego przetwarzania w skrypcie TXT, a HTML gdy zależy na strukturze akapitów.
- Przy kolumnach i tabelach eksportuj strony osobno — krótsze pliki łatwiej scalać i poprawiać kolejność niż jeden długi ciąg tekstu.
- Kontroluj miejsca krytyczne — liczby, daty, kwoty, nazwy własne i przypisy; to tam najczęściej widać błędy spacji lub kolejności i tam korekta jest najważniejsza.
Czego ekstrakcja nie uwzględnia
- Znaczenia treści — parser nie wie, że dana linia jest tytułem rozdziału, podpisem rysunku czy przypisem; rozpoznaje tylko geometrię i rozmiar fontu.
- Układów złożonych — kolumny, ramki, tekst opływający grafikę i pola tekstowe poza głównym nurtem strony mogą trafić do wyniku w kolejności niezgodnej z intencją autora.
- Ligatur i dzielenia wyrazów — połączenia typu fi lub fl bywają mapowane jako jeden glif, a wyrazy przeniesione do następnego wiersza zostają rozcięte; wymaga to korekty ręcznej.
- Elementów spoza warstwy tekstowej — treść zapisana wyłącznie w obrazach, wykresach lub w osadzonych fragmentach graficznych nie pojawi się w wyniku bez OCR.
- Powtarzalnych elementów strony — nagłówki, stopki i numery stron są traktowane jak zwykłe linie i zaśmiecają tekst, jeśli nie zostaną odfiltrowane po eksporcie.
Najczęstsze pytania
Czy ekstraktor działa z polskim tekstem i znakami diakrytycznymi?
Tak dla cyfrowych PDF z poprawnymi metadanymi fontów. Dla skanów: Tesseract.js obsługuje język polski (tesseract-ocr-pol). Jakość OCR dla polskich znaków (ą, ę, ó, ż, ź, ć, ń) jest dobra przy skanach 300+ DPI.
Jak wyodrębnić tekst z PDF chronionego hasłem?
Jeśli znasz hasło użytkownika (do otwierania), możesz wpisać je w narzędziu. Hasło właściciela (printing/editing restriction) nie blokuje odczytu tekstu w PDF.js – tylko hasło otwierające. Narzędzie nie łamie szyfrowania.
Dlaczego OCR dla skanowanych PDF trwa dłużej?
OCR (Optical Character Recognition) wymaga analizy obrazu piksel po pikselu przez sieć neuronową. Tesseract.js (WASM): ~3-10 sekund/stronę dla 300 DPI. Czynniki wpływające na czas: rozdzielczość skanu, złożoność layoutu, jakość druku. Dla dużych dokumentów: ekstrakcja z cyfrowego PDF jest zawsze szybsza.
Jaka jest różnica między PDF.js a iText/Apache PDFBox?
PDF.js (JavaScript, Mozilla): działa w przeglądarce, open-source, brak serwera. iText (Java/C#): biblioteka server-side, zaawansowane operacje na PDF (tworzenie, modyfikacja, podpisy). Apache PDFBox (Java): open-source, podobny do iText. Wybór: narzędzie online = PDF.js. Backend = iText/PDFBox.
Czy wyodrębniony tekst zachowuje kolejność słów w tabelach?
Tabele w PDF to tylko pozycjonowane elementy tekstowe (brak semantyki tabeli). PDF.js rekonstruuje kolejność na podstawie pozycji Y/X co może dać mylną kolejność. Dla tabel używaj dedykowanego ekstraktora tabel (camelot-py, tabula-java) lub narzędzia "Konwerter PDF do CSV".
Czy ekstraktor tekstu z PDF działa bez instalowania programu?
Tak, narzędzie działa w przeglądarce i opiera się na bibliotekach uruchamianych po stronie klienta — PDF.js do parsowania oraz Tesseract.js do OCR skanów. Nie musisz nic instalować ani zakładać konta.
Dlaczego skopiowany tekst z PDF wychodzi bez spacji albo z podwójnymi spacjami?
PDF nie zapisuje spacji jako znaku w taki sam sposób jak edytor tekstu — parser odtwarza je z odległości między fragmentami glifów. Kerning, justowanie i odstępy w tabelach zaburzają ten próg, więc wynik wymaga zwykle drobnej korekty.
Czy można wyciągnąć tekst tylko z wybranych stron?
Tak, zakres stron ustawia się przed eksportem. Przy długim dokumencie warto najpierw przetestować kilka stron, a dopiero potem przetwarzać całość.
Jak poradzić sobie z dwukolumnowym PDF-em, w którym tekst się przeplata?
Najskuteczniej jest eksportować każdą stronę osobno i scalać kolumny ręcznie. Przyczyną jest sortowanie wierszy po współrzędnej pionowej, przez co fragmenty z obu kolumn na tej samej wysokości trafiają do jednej linii.
Dlaczego w wyniku brakuje tekstu widocznego na obrazkach w PDF-ie?
Obrazy nie zawierają warstwy tekstowej, więc parser nie ma czego odczytać. Jedynym rozwiązaniem jest OCR, który rozpoznaje znaki z pikseli — z dokładnością zależną od jakości skanu i kontrastu.
Powiązane narzędzia: konwerter PDF na Word, ekstraktor audio z wideo i kompresja PDF online.