web-dev-qa-db-fra.com

Comment savoir si un PDF contient uniquement des images ou a été analysé par OCR pour la recherche?

J'ai un tas de PDF fichiers provenant de documents numérisés. Les fichiers contiennent un mélange d'images et de texte. Certaines ont été numérisées en tant qu'images sans OCR. Ainsi, chaque PDF page correspond à une grande image, même lorsque la page entière est entièrement composée de texte. D'autres ont été numérisés avec OCR et contiennent des images et du texte interrogeable là où du texte est présent. Dans de nombreux cas, même les mots des images étaient consultables.

Je souhaite créer un processus automatisé permettant de reconnaître le texte de tous les documents numérisés à l'aide d'OCR avec Acrobat 8 ​​Pro, mais je ne souhaite pas ré-OCR des fichiers ayant déjà subi le processus d'OCR par le passé. Est-ce que quelqu'un sait s'il existe un moyen de savoir quelles sont celles qui contiennent uniquement des images et celles qui contiennent déjà du texte interrogeable?

Je prévois de faire cela en C # ou VB.NET, mais je ne pense pas que pouvoir distinguer les deux types de fichiers soit dépendant de la langue.

21
Bratch

Les images numérisées converties au format PDF et qui ont été OCRé à la suite d'une opération pour permettre la recherche de texte contiennent normalement les parties de texte rendues comme "invisibles". Donc, ce que vous voyez à l'écran (ou sur le papier une fois imprimé) reste l'image d'origine. Mais lorsque vous recherche avec succès, vous obtenez les occurrences mises en surbrillance qui figurent sur le texte invisible.

Je vous recommande de consulter les outils de ligne de commande dérivés de XPDF pdffonts(.exe), pdfinfo(.exe) et pdftotext(.exe). Voir ici pour les téléchargements: http://www.foolabs.com/xpdf/download.html

Exemple d'utilisation de pdffonts:

C:\downloads\> pdffonts Cisco-ip-phone-7911-guide6.1.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
LGOKFL+Univers-BlackOblique          Type 1C           yes yes no   13171  0
LGOKGM+Univers-Black                 Type 1C           yes yes no   13172  0
[....]

Ce PDF utilise des polices (indiquées par la colonne "nom"), les a incorporées (indiquées par le "oui" dans la colonne "emb") et utilise des polices de sous-ensemble (indiquées par le "oui" dans le colonne 'sous').

C:\downloads\> pdffonts examle1.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------
Univers-BlackOblique                 Type 1C           yes no  no   14    0
Arial                                TrueType          no  no  no   15    0

Ce PDF utilise 2 polices (indiquées par la colonne "nom"). La police 'Universe-BlackOblique' est complètement intégrée (indiquée par le 'oui' dans la colonne 'emb' et le 'non' dans la colonne 'sub'). La police "Arial" est également utilisée, mais n'est pas intégrée.

C:\downloads\> pdffonts examle2.pdf
name                                 type              emb sub uni object ID
------------------------------------ ----------------- --- --- --- ---------

PDF n'utilise pas une seule police et ne contient donc aucun texte (donc pas d'OCR).

Exemple d'utilisation de pdftotext:

C:\downloads\> pdftotext ^
                   -layout ^
                   Cisco-ip-phone-7911-guide6.1.pdf ^
                   Cisco-ip-phone-7911-guide6.1.txt

Cela extraira toutes les chaînes de texte du PDF (en essayant de conserver une ressemblance avec la mise en page originale). S'il n'y a pas de texte dans le PDF, vous saurez qu'il n'y a pas d'OCR ...

20
Kurt Pfeifle

Différents outils PDF peuvent vous indiquer s'il y a du texte. Certains sont disponibles en tant que contrôles COM et peut-être même en natifs .NET.

3
Steven Sudit

Ouvrez le document en acrobat. Allez dans Fichier -> Propriétés. Regardez dans la section "Avancé" et trouvez le PDF Producer. Si le texte indique quelque chose comme "Capture de papier ...", cela signifie qu'il a été converti en OCR.

J'espère que cela t'aides.

1
Bob

Pdfspy d'Apago extrait les informations de PDF dans un fichier XML. Il comprend des informations sur le document, y compris des images et du texte. Pour votre projet, les informations utiles incluent le nombre et la taille des images et où il y a du texte OCR (caché).

http://www.apagoinc.com/pdfspy

0
Dwight Kelly

Désolé de retrouver l'ancien fil de discussion, mais si vous avez trouvé cela, jetez un coup d'œil à mon fil de discussion:

Programme OCR en lot pour les PDF

vous pouvez obtenir des informations supplémentaires sur le pdf en le lançant sous unix/linux/osx ou en l'ouvrant en mode "rb" en python. (Bien sûr, c'est du python et vous ne voulez pas l'utiliser mais peut-être qu'il a quelque chose d'équivalent).

0
PatentDeathSquad