Comment savoir si un PDF ne contient que des images ou si la ROC a été scannée pour la recherche?
j'ai un tas de fichiers PDF qui viennent de documents scannés. Les fichiers contiennent un mélange d'images et de texte. Certaines ont été scannées sous forme d'images sans ROC, de sorte que chaque page PDF est une grande image, même si toute la page est entièrement en texte. D'autres ont été scannées à L'aide de la roc et contiennent des images et du texte pouvant faire l'objet d'une recherche lorsqu'il y a du texte. Dans de nombreux cas, même les mots dans les images ont été consultées.
je veux faire un processus automatisé pour reconnaître le texte dans tout le scanné documents utilisant OCR, avec Acrobat 8 Pro, mais je ne veux pas re-OCR les fichiers qui ont déjà été à travers le processus OCR dans le passé. Est-ce que quelqu'un sait s'il y a un moyen de dire lesquelles contiennent seulement des images, et lesquelles contiennent déjà du texte consultable?
je prévois de le faire en C# ou VB.NET mais je ne pense pas qu'être capable de distinguer les deux types de fichiers dépend de la langue.
7 réponses
les images scannées converties en PDF qui ont été OCR'ed dans la suite pour rendre le texte consultable contiennent normalement les parties de texte rendues "invisibles". Donc ce que vous voyez à l'écran (ou sur du papier une fois imprimé) est toujours l'image originale. Mais quand vous recherche avec succès, vous obtenez les touches surlignées qui sont sur le texte invisible.
je vous recommande de regarder 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 intègre (indiquées par le " oui "dans la colonne "emb") et utilise des polices de sous-ensembles (indiquées par le " oui "dans la 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 "univers-BlackOblique" est complètement intégrée (indiqué par le 'oui' dans la 'emb colonne" et le " non "dans le" sub " de la colonne). 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
------------------------------------ ----------------- --- --- --- ---------
Ce PDF n'utilise pas une seule police, et n'a donc pas de texte intégré (donc pas de ROC non plus).
Exemple d'utilisation de pdftotext
:
C:\downloads\> pdftotext ^
-layout ^
cisco-ip-phone-7911-guide6.1.pdf ^
cisco-ip-phone-7911-guide6.1.txt
ceci extraira toutes les chaînes de texte du PDF (en essayant de préserver une certaine ressemblance avec la mise en page originale). Si il n'y a pas de texte dans le PDF, vous savez qu'il n'y a pas de ROC...
divers outils PDF peuvent vous indiquer s'il y a du texte. Certains sont disponibles en tant que com controls, et peut-être même natifs .net.
ouvrir le document en acrobat. Allez à Fichier - > Propriétés. Cherchez dans la section" Avancé " et trouvez le producteur PDF. Si on lit quelque chose comme " Capture de papier..."alors il a été OCR.
J'espère que cela vous aidera.
le pdfspy d'Apago extrait L'information de PDF dans un fichier XML. Il contient des informations sur le document, y compris des images et du texte. Pour votre projet, l'information utile inclut le nombre d'images et la taille et où il y a du texte OCR (caché).
Désolé de déterrer de vieux thread, mais si vous avez trouvé cet regarder mon thread:
programme de roc par lot pour les fichiers PDF
vous pouvez obtenir des informations supplémentaires sur le pdf en le cattant dans unix / linux / osx ou en l'ouvrant en mode "rb" en python. (bien sûr, c'est python et vous ne vouliez pas l'utiliser mais peut-être qu'il a quelque chose d'équivalent).
utilisez "dtsearch" pour créer un index pour tous les fichiers pdf... puis "voir le fichier journal" du processus d'indexation pour vérifier la liste des fichiers pdf qui n'ont pas été indexés.
une solution de très faible technologie: tout fichier qui a scanné du texte contiendra sans aucun doute la lettre "a" alors faites une recherche sur tout le contenu du fichier qui ne contient pas la lettre A. i.e. "NOT a". Tout fichier qui apparaîtra n'aura pas été OCR!--1-->