Konwerter PDF na tekst: gdy problemem jest samo formatowanie
Spróbuj uruchomić diff na dwóch plikach PDF. Nie da się — to pliki binarne, a nawet „ten sam"
dokument wyeksportowany ponownie z tego samego źródła będzie się różnił bajt po bajcie przez znaczniki
czasu i kolejność obiektów. Wyciągnij za to tekst z obu i porównaj go — w dwie sekundy wiesz dokładnie,
które trzy zdania zmieniły się między rewizją 11 a rewizją 14 umowy.
To cały argument za konwersją PDF na zwykły tekst w jednym zdaniu. To nie jest „Markdown,
tylko gorszy" — to inne narzędzie do innej roboty. Tekst to coś, co podajesz klasyfikatorowi, indeksujesz
w wyszukiwarce, tniesz na fragmenty do bazy wektorowej, przepuszczasz przez grep, w czym
liczysz słowa — wszystko, co traktuje # i | jako znaki do sparsowania, a nie do
zignorowania. Upuść plik w konwerterze powyżej, a dostaniesz wynik w kilka sekund. Za darmo, bez
rejestracji, limit 50 MB, nic nie zostaje po naszej stronie.
Co zyskujesz, wyrzucając znaczniki
Ekstrakcja do zwykłego tekstu to słowa w kolejności czytania i nic więcej. Żadnych znaków składni, żadnych reguł escapowania, żadnych wątpliwości, czy gwiazdka to wyróżnienie, czy dosłowna gwiazdka. Dla zaskakująco wielu pipeline'ów to nie kompromis, tylko wymóg wyjściowy:
- Embeddingi i wyszukiwanie semantyczne. Tniesz dokument na fragmenty, wektoryzujesz każdy z nich, wyszukujesz po podobieństwie. Kreski pionowe i kratki Markdowna nie wnoszą nic do znaczenia, ale zajmują pozycje w embeddingu — to czysty szum. Fragmenty czystej prozy wyszukują się lepiej.
- Klasyfikatory i modele tematyczne. Wszystko, co robi bag-of-words, TF-IDF albo
analizę n-gramów, z radością potraktuje
###jako token, jeśli go wcześniej nie usuniesz. Najprościej w ogóle go nie wprowadzać. - Indeksowanie pełnotekstowe. Elasticsearch, SQLite FTS,
tsvectorw Postgresie — wszystkie chcą surowego tekstu w kolumnie. Markdown to dodatkowy krok czyszczenia. - Porównywanie wersji. Diff liniowy dobrze działa na prozie, a źle na tabelach, bo zmiana jednej komórki w tabeli Markdowna przeformatowuje i przepisuje cały wiersz.
- Oszczędność tokenów. Jeśli wklejasz długi dokument do modelu z ciasnym oknem kontekstu, każda kreska pionowa to token, za który płacisz i nic z niego nie masz.
I co tracisz — lepiej wiedzieć od razu
Spłaszczanie jest destrukcyjne, i to celowo. Dwie straty liczą się bardziej niż pozostałe.
Tabele się rozpadają. Tabela finansowa staje się ciągiem liczb rozdzielonych spacjami. Wszystkie wartości są na miejscu, ale kolumna, do której każda z nich należała — już nie, i żaden prompt tego nie odtworzy. Jeśli tabela jest sednem dokumentu, wybierz raczej PDF na Markdown, gdzie tabele z kresek pionowych zachowują wiersze i kolumny w nienaruszonym stanie.
Hierarchia znika. Tytuł sekcji i zdanie pod nim stają się dwiema sąsiednimi liniami, których nic nie odróżnia. Poproś model o „streszczenie sekcji 4", a będzie musiał zgadywać, gdzie sekcja 4 się zaczyna, wyłącznie po sformułowaniach. Przy długich, ustrukturyzowanych dokumentach — specyfikacjach, normach, umowach z numerowanymi klauzulami — to dokładnie tam odpowiedzi zaczynają się sypać.
Przełącznik formatu u góry strony przełącza między tekstem a Markdownem i zachowuje już wybrany plik, więc konwersja w obie strony dla porównania kosztuje cię jedno kliknięcie, a nie ponowny upload.
Dziwactwa PDF-a, które wychodzą przy zamianie PDF na tekst
PDF to język opisu strony. Przechowuje glify we współrzędnych, a ekstrakcja polega na odtworzeniu z tego zdań. Wynika z tego kilka artefaktów — znając je, oszczędzasz sobie pół godziny konsternacji:
- Twarde złamania linii w środku zdania. PDF nie zna pojęcia akapitu, który się
zawija — każda widoczna linia to osobny fragment tekstu. Jeden akapit przychodzi więc jako sześć
krótkich linii. To pułapka numer jeden przy pracy z
grepi wyrażeniami regularnymi: szukasz frazy, która akurat przypadła na złamanie linii, i dostajesz zero trafień dla tekstu, który ewidentnie tam jest. - Dzielenie wyrazów przeżywa konwersję. Słowo rozbite na końcu linii na „zarzą-" / „dzanie" zwykle zostaje rozbite. Warto zrobić znajdź-i-zamień przed liczeniem słów czy ekstrakcją słów kluczowych.
- Nagłówki stron i numery stron wchodzą w tekst. Nazwa firmy i „Strona 14 z 88" lądują w środku twojej prozy co dwa tysiące znaków. Nieszkodliwe przy czytaniu, lekko irytujące przy cięciu na fragmenty i łatwe do usunięcia jednolinijkowym regexem, gdy już wypatrzysz wzorzec.
- Kolejność kolumn może się poplątać. Dwukolumnowe układy akademickie zwykle są linearyzowane poprawnie, ale pływające ramki, wyimki i bloki przypisów czasem lądują w środku akapitu.
- Ligatury i nietypowe glify. W profesjonalnie składanych PDF-ach „fi" i „fl" to często pojedynczy glif. Większość wyciąga się bez problemu. Za to PDF zbudowany z czcionką z osadzonym podzbiorem znaków, ale bez tablicy mapowania Unicode, może wyjść jako pozorny bełkot — to rzadkie, a gdy się zdarza, problemem jest plik, nie konwerter.
Skanowany PDF nie ma tekstu do wyciągnięcia
Skanowany PDF to fotografia papieru w opakowaniu PDF. Nie ma z niego czego wyciągać poza pikselami, a rozpoznawanie tekstu nie zagląda do wnętrza PDF-a — plik złożony z samych obrazów wraca pusty. (Wyślij tę samą stronę jako JPG albo PNG, a zostałaby odczytana bez problemu, zobacz obraz na tekst. To opakowanie PDF stoi na przeszkodzie.) Test zajmuje dwie sekundy: otwórz plik i spróbuj zaznaczyć zdanie kursorem. Tekst się podświetla — wszystko gra. Dostajesz prostokąt na całą stronę — to skan.
Przy skanach najpierw uruchom OCR — Acrobat, Podgląd na macOS i większość nowoczesnych czytników PDF ma polecenie „rozpoznaj tekst" — a potem wróć i przekonwertuj. Różnica w jakości wyniku nie jest subtelna.
Konkretne zadania, które to rozwiązuje
- Budowa korpusu RAG. Setki PDF-ów z regulacjami zamienione na tekst, pocięte na granicach akapitów, zwektoryzowane. Tekst to format, którego każda biblioteka do chunkowania oczekuje domyślnie.
- Porównanie dwóch wersji umowy. Wyciągnij tekst z obu, uruchom diff na poziomie słów i przeczytaj faktyczne zmiany, zamiast ufać mailowi z podsumowaniem.
- Compliance i przeszukiwanie słów kluczowych. Grepowanie katalogu wyciągniętych raportów w poszukiwaniu zdefiniowanego terminu, nazwy dostawcy albo frazy, której nie powinno tam być. Natychmiast, offline, bez żadnego narzędzia poza shellem.
- Analiza czytelności i stylu. Rozkład długości zdań, gęstość żargonu, wskaźniki czytelności — wszystko to wymaga czystej prozy bez znaczników formatowania w strumieniu.
- Zasilanie syntezy mowy. Czytnik ekranu albo silnik TTS z chęcią przeczyta ci na głos „kratka kratka Wprowadzenie", jeśli podasz mu Markdown.
- Szybka wycena w tokenach. Licznik pod wynikiem mówi ci, ile dokument kosztuje, zanim gdziekolwiek go wkleisz — co jest bardziej przydatne niż dowiedzieć się tego z błędu obcięcia kontekstu.
Najczęstsze pytania
Jak za darmo przekonwertować PDF na tekst online?
Upuść plik w konwerterze u góry strony, a wyciągnięty tekst pojawi się poniżej. Bez konta, bez maila, bez znaku wodnego na wyniku. Limit to 50 MB na plik i nic nie jest przechowywane po tym, jak odbierzesz swój tekst. Skopiuj go od razu albo pobierz jako .txt.
Dlaczego tekst wyciągnięty z PDF-a wychodzi jako bełkot?
Prawie zawsze winna jest czcionka, nie konwerter. PDF zbudowany z czcionką zawierającą tylko podzbiór znaków i pozbawioną tablicy mapowania Unicode przechowuje indeksy glifów bez informacji, jakim znakom odpowiadają — ekstrakcja zwraca więc te indeksy jako bezsensowne litery. Jeśli w dodatku tekstu nie da się zaznaczyć w twoim czytniku PDF, to na pewno wina pliku — wyeksportuj go ponownie z dokumentu źródłowego.
Czy da się przekonwertować skanowany PDF na tekst?
Nie bezpośrednio. Skan to fotografia opakowana w PDF — w środku nie ma żadnych znaków do wyciągnięcia, więc wynik wraca pusty. Dwa sposoby na obejście: najpierw uruchom „rozpoznaj tekst" w Acrobacie albo w Podglądzie na macOS, a potem przekonwertuj tutaj — albo wyeksportuj stronę jako PNG i użyj konwertera obraz na tekst, który faktycznie uruchamia OCR na pikselach.
Dlaczego wyciągnięty tekst jest połamany w środku zdań?
PDF nie ma zawijanego akapitu — każda widoczna linia jest przechowywana jako osobny fragment tekstu, więc akapit przychodzi jako sześć krótkich linii. Najbardziej gryzie to przy grep i regexach: fraza, która przypadła na złamanie linii, zwraca zero trafień. Przed wyszukiwaniem sklej linie, które nie kończą się interpunkcją zamykającą zdanie.
Konwertować PDF na txt czy na Markdown?
Na tekst, jeśli miejsce docelowe parsuje surowe słowa — embeddingi, indeksy wyszukiwania, klasyfikatory, diffy. Na Markdown, jeśli kształt dokumentu niesie znaczenie, bo tabele z kresek pionowych przeżywają konwersję, a nagłówki pozostają oznaczone. O wyborze rozstrzygają tabele: spłaszcz tabelę finansową do tekstu, a kolumna, do której należała każda liczba, przepada bezpowrotnie.
Czy mój PDF jest wysyłany na serwer?
Plik jest przesyłany do usługi konwersji, przetwarzany i odrzucany — nie jest przechowywany, logowany ani indeksowany, i nic nie zostaje po odesłaniu odpowiedzi. Jeśli potrzebujesz konwersji, przy której plik naprawdę nigdy nie opuszcza komputera, konwerter katalogu lokalnego czyta pliki bezpośrednio w przeglądarce.
Reszta zestawu narzędzi
PDF to jeden z trzynastu obsługiwanych formatów. File2Txt obsługuje wszystkie z jednego uploadu, albo przejdź od razu do Word na tekst dla plików DOCX, HTML na tekst dla zapisanych stron www, EPUB na tekst dla e-booków, albo obraz na tekst dla zrzutów ekranu. Pracujesz raczej z kodem? Przekonwertuj repozytorium GitHub na tekst, projekt GitLab albo katalog lokalny. Do stron w sieci Web2Txt pobiera treść bezpośrednio z URL-a. Przewodnik po przygotowywaniu dokumentów dla LLM-ów omawia ogólną wersję tego wszystkiego.
Repo2Txt tworzy i utrzymuje v12hero, niezależny deweloper budujący natywne i webowe aplikacje z poszanowaniem prywatności.