Czy istnieje lepszy konwerter plików PDF na tekst niż pdftotext?

63

Używam pdftotext (część poppler-utils) do konwersji dokumentów PDF na tekst. W większości działa, ale jedną rzeczą, którą chciałbym zrobić, było wstawienie pustych linii między osobnymi akapitami zamiast ich łączenia.

Czy istnieje sposób, aby uzyskać do tego pdftotext? A jeśli nie, to czy istnieje inne narzędzie pdf do tekstu, które może to zrobić?

dan
źródło
8
W tytule mówisz „pdftotext” (który jest częścią poppler-utils), a w treści mówisz „pdt2text” (którego nie znam). Do którego masz na myśli?
enzotib,
podobne pytanie PDF to audio software for academic papers? softwarerecs.stackexchange.com/questions/10640/…
JinSnow

Odpowiedzi:

25

Możesz spróbować ebook-convertz Calibre.

Jeśli cokolwiek, powiedziałbym, że popełni błąd w przeciwnym kierunku: zbyt wiele podziałów linii.

Inną rzeczą, którą zdecydowanie rozważę, jest konwersja do HTML za pomocą pdfreflow , a następnie konwersja HTML do TXT.

frabjous
źródło
Uwaga: ebook-convertnie można przekonwertować układu wielokolumnowego, łączy kolumny w jedną kolumnę. W przypadku układu wielokolumnowego pdftotextzapewnia znacznie lepszą wydajność. Dalsze ograniczenia opisano na manual.calibre-ebook.com/conversion.html#convert-pdf-documents .
asmaier
117

Jeśli używasz pdftotext , możesz użyć -layoutflagi, aby zachować układ tekstu na stronach w wejściowym pliku pdf:

pdftotext -layout input.pdf output.txt
Noah
źródło
6
Istnieje również -tabela specjalnie dla układów tabel, działa świetnie.
P.Windridge
3
@ P.Windridge, gdzie jest ta opcja tabeli? Nie mogę go znaleźć w wersji 0.48.0 z poppler-utils w Ubuntu 17.04
gozzilli
2
@gozzilli To sposób życia. Najnowszy pdftotext jest v4.00 dostępne w Xpdf narzędzi archiwum tutaj .
Adrian
2
Wersje @gozzilli zaczynające się od 0. wskazują, że jest to gałąź Popplers oryginalnego kodu Xpdf. Zaczęli numery wersji od nowa, gdy rozgałęzili kod. Obie grupy wydają się teraz utrzymywać osobne wersje tych narzędzi PDF.
Andrew
1
@VivekSable są to punkty (piksele) w określonej -r(rozdzielczości, domyślnie 72 dpi)
vstepaniuk
14

Jako fan otwartego oprogramowania (i automatyzacji) nie chcę tego mówić, ale najlepsze wyniki, jakie właśnie uzyskałem (na dość dużym, złożonym pliku PDF) to otwarcie go w programie Adobe Reader, a następnie wybranie Plik | Zapisz jako tekst.

(Przygotowuję wstępne eksperymenty z analizą tekstu, nie jako czytelnik, ale myślę, że mój pierwszy i drugi wybór byłyby takie same.)

Porównywałem dane wyjściowe obok siebie. Moim drugim wyborem jest konwersja ebook.

Adobe : pozostawione w FF dla podziałów stron, pozostawione w numerach stron, nie przekształciły nagłówków / akapitów w pojedyncze linie, ale naprawiły łączniki. Śmieci, które były ukryte w pliku PDF, nie uzyskały wyniku. Prawidłowo otrzymałem wielkie litery na początku sekcji, np. „The”, nie „T he”, a nawet „T he”.

ebook-convert : Pozostawiono w numerach stron i niektóre ukryte śmieci w nagłówku / stopce (ale bez FF). Konwertuje większość akapitów na pojedyncze wiersze. Te, które przeoczyła, mają jednak podwójne odstępy! Punktory nie zawsze pokrywają się z tekstem. Poprawnie otrzymał „The” na początku rozdziału.

pdftotext (bez --layout) : nieźle, wypunktowane linie, ale hałas nagłówka / stopki. FF są tam. Łączniki usunięte. Najgorszy na początek rozdziału dużych liter: „T \ n \ nhe”.

pdftotext (z --layout) : Podobne, ale więcej wcięć. „T he” na początek rozdziału.

pdftohtml >> pdfreflow >> htmltotext : Usunął numery stron, ale nadal śmieci w nagłówku / stopce. „T he” na początek rozdziału. Łączniki usunięte. (Używa wielu wierszy na akapit, ale nie są to takie same podziały wierszy jak w innych wersjach!)

Darren Cook
źródło
Acrobat reader 9 na Linuksie wygenerował zgniecione słowa w moim przypadku. ebook-convertdziałało dobrze.
ov7a
Naprawdę potrzebujemy do tego aplikacji AI, wydaje się idealna do tego rodzaju zadań: ktoś ją zna?
JinSnow,
1
Adobe Reader jest darmowy, ale ... tylko do odczytu pdf. Za inne rzeczy trzeba zapłacić (abonament miesięczny). (Pdf do tekstu jest ograniczony do kilku stron). Tekst Pdfto (lub xpdf na Win) jest idealny dla moich potrzeb.
JinSnow,
W przypadku danych tabelarycznych najlepiej teraz użyć przełącznika -table "pdftotext -table nazwa_pliku.pdf nazwa_wyjściowa.txt"
Thom Ives
5

Jeśli masz konto Google, możesz użyć Dokumentów Google, aby przesłać plik PDF i przekształcić go w tekst do edycji.

Xangua
źródło
1

Próbowałem również pypdf i porównałem go z pdftotext na dwóch dokumentach. Miał więcej podziałów linii i podzielił niektóre nazwy sekcji (REFERENCES to REFERENCES).

pdf2txt wykonał pełne śmieci.

Często używam pdfBox (java), jeśli pdftotext psuje dane wyjściowe. Możesz spróbować.

Max
źródło