PDF-Dateien ohne/mit eingebetteten Text finden?

Du hast Probleme mit Deinem eMail-Programm, Webbrowser oder Textprogramm? Dein Lieblingsprogramm streikt?
Antworten
Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

PDF-Dateien ohne/mit eingebetteten Text finden?

Beitrag von desputin » 27.09.2018 08:25:25

Hallo Ihr,

ich habe ein Verzeichnis mit PDF-Dateien von Dokumenten, in dem einige mit OCR in Bezug auf den enthaltenen Text erkannt wurden und andere nicht.
Gibt es einen Konsolen-Befehl, mit dem ich herausfiltern kann, welche PDF-Dateien einfach nur Bilder enthalten und welche Bilder und Text enthalten?

Viele Grüße
desputin
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: PDF-Dateien ohne/mit eingebetteten Text finden?

Beitrag von eggy » 27.09.2018 09:16:16

Falls es nichts fertiges gibt: evtl kannst Du mit pdftotext was entsprechendes basteln. Die Ausgabedatei bei "nur Bildern" ist zwar nicht leer, sollte sich aber signifikant von "normalem" Text unterscheiden.

uname
Beiträge: 12072
Registriert: 03.06.2008 09:33:02

Re: PDF-Dateien ohne/mit eingebetteten Text finden?

Beitrag von uname » 27.09.2018 09:24:22

Du kannst auch versuchen mit "strings" die PDF-Dateien direkt nach Zeichenketten zu durchsuchen. Leider ist das aber nicht sehr zuverlässig.

Code: Alles auswählen

strings -f *.pdf
Du könntest nun mal ein paar Testdateien vergleichen und aufgrund deren Inhalte z. B. "Author" annehmen, dass diese für alle Dateien mit "Author" auch für OCR verwendbar oder eben nicht verwendbar sind.

Code: Alles auswählen

strings -f *.pdf |grep Author|cut -d: -f1|sort|uniq

rodney
Beiträge: 334
Registriert: 09.12.2016 04:15:59

Re: PDF-Dateien ohne/mit eingebetteten Text finden?

Beitrag von rodney » 27.09.2018 13:04:47

Vor geraumer Zeit spielte ich auch viel mit OCR und PDFs rum und bin auf diese Frage/Antwort bei stackoverflow gestossen: https://stackoverflow.com/questions/799 ... s-are-ocrd

Ich habe das Script um pdf2txt (Debianpython-pdfminer) erweitert und hatte bis jetzt noch keine falsche Erkennung:

Code: Alles auswählen

#!/bin/bash

MYFONTS=$(pdffonts -l 5 "$1" | tail -n +3 | cut -d ' ' -f1 | sort | uniq)
HASTEXT=$(pdf2txt "$1" | grep "[A-Za-z0-9]")
if [ "$MYFONTS" = '' ] || [ "$MYFONTS" = '[none]' ]; then
  if [ "$HASTEXT" = '' ]; then
    echo "$1 :: NOOCR"
  else
    echo "$1 :: UNCERTAIN"
  fi
else 
    echo "$1 :: OCR."
fi
Edit: Ausgaben von NOOCR und OCR waren vertauscht

Benutzeravatar
desputin
Beiträge: 1297
Registriert: 24.04.2015 17:16:34

Re: PDF-Dateien ohne/mit eingebetteten Text finden?

Beitrag von desputin » 30.09.2018 18:15:21

Hallo Ihr, danke für die Tips!

@rodny: Super, danke!
Ich hab das script nun erstellt und dann das hier ausgeführt, um eine Liste als Text-Datei zu bekommen:

Code: Alles auswählen

find . -type f -name "*.pdf" -exec /media/Daten1/Dokumente/Papiere/is-pdf-ocred.sh '{}' \; > pdfs.txt
Wunderbar!
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Antworten