Próbuję napisać aplikację Pythona, aby dać mi słowo dla PDF.

Pobierzam jednak w coś dziwnego z tym PDF.

Kiedy wyodrębną tekst z PDF, pojawia się jako jakieś śmieci binarne / symbol.

Próbowałem PyPDF2 i PyMuPDF libs z tym samym wynikiem.

Jak mogę uzyskać słowo na pdfach takich jak ten?

Oto plik. https://www.dropbox.com/s/hdgqd70l0kcayvo/mhr. PDF? Dl = 0

-1
tynick 4 sierpień 2020, 04:33

1 odpowiedź

Najlepsza odpowiedź

, że PDF brakuje informacji niezbędnych do ekstrakcji tekstu. Tak więc próba wyodrębnienia tekstu z niego zwykle wyprowadza śmieci.

Szczegółowo

Tekst w tym pliku PDF jest narysowany za pomocą czcionki, która nie naraża Tunikode Mapy ani kodowania ze standardowymi nazwami. Nie zaznacza również treści za pomocą właściwości AktualtText . Ponadto, naiwna tożsamość mapowanie kodów znaków na np. Latin-1 nie powoduje ani nic zrozumiałego.

Zatem ekstrakcja tekstowa zgodnie z algorytmem zaproponowanym w specyfikacji PDF ISO 32000 (część 1 i 2) będzie dla każdej postaci prowadzi do etapu

Jeśli te metody nie wytwarzają wartości Unicode, nie ma sposobu, aby określić, jaki kod znakowy reprezentuje, w którym to przypadku czytnik zgodny może wybrać kod znaku ich wyboru.

(ISO 32000-1, sekcja 9.10.2 Mapowanie kodów znaków do wartości Unicode)

Widać, że Adobe Acrobat nie podoba Ci się tak, stosując kopiowanie i pasty.

W niektórych takich sytuacjach nurkowanie głębiej w osadzonej czcionce pojawi się alternatywne odwzorowania do Unicode, a niektóre ekstraktory tekstu używają ich.

Niemniej jednak, to podejście nie pomoże, czcionka jest czcionką typu 3, tj. Nie oparta na niektórych normalnych formacie czcionki (np. TrueType), ale całkowicie zdefiniowany za pomocą sekwencji graficznych Vector PDF bez dalszych odwzorowania do Unicode.

W ten sposób bez pewnego stopnia OCR (człowiek lub zautomatyzowany) nie ma sposobu na wyodrębnienie tekstu z tego pliku PDF.

Tak na marginesie

Jeśli ten dokument rzeczywiście jest publikowany w swojej obecnej formie przez niektóre dział U.

1
mkl 4 sierpień 2020, 09:49