Joindre (recommandé) ou créer un lien vers le fichier PDF ici :
dee752ed0f726d8785abf360ca783d91f96f9a2e.pdf
Configuration:
Étapes pour reproduire le problème :
pdftotext affiche le texte correct :
in nit ris hington 1D C
boerge W lacan a pioneer of butali
and an influential man aw at richfield last walk
Cela fonctionne dans la visionneuse PDF intégrée de Chrome, ce n'est donc pas un problème avec le pdf.
Lien vers une visionneuse (si hébergé sur un site autre que mozilla.github.io/pdf.js ou en tant qu'extension Firefox/Chrome) :
https://newspapers.lib.utah.edu/pdfjs1.9/web/viewer.html?file=/udn_files/de/e7/dee752ed0f726d8785abf360ca783d91f96f9a2e.pdf
j'adorerais travailler dessus,
@timvandermeij S'il vous plaît aidez-moi, par où commencer tout en travaillant sur ce problème
Je suggérerais de vérifier d'abord ce que nous avons dans la couche de texte, car cela peut expliquer pourquoi la recherche ne fonctionne pas. Je suppose que le facteur d'espace n'est pas correct; voir : https://github.com/mozilla/pdf.js/blob/7bb066494f3f15c396941c3532b83da6d3465c6b/src/core/evaluator.js#L1303
C'est probablement aussi la cause de nombreux autres problèmes de sélection de texte ouvert. Cependant, la modification de la valeur peut être sujette à des erreurs pour d'autres fichiers PDF et nécessiterait de bons tests. Nous devrons peut-être vérifier comment d'autres visionneuses PDF open source (comme Poppler) le font, car le problème est que la spécification PDF n'indique pas quand un espace doit être utilisé pour la sélection de texte. Il ne définissait que la largeur d'espacement entre les caractères.
Malheureusement, https://github.com/mozilla/pdf.js/issues/9736#issuecomment -390629834 n'aidera pas ici, car il s'agit d'un fichier numérisé où chaque mot est positionné individuellement avec différentes tailles de police et coordonnées x/y ; voir par exemple le début du flux /Contents
:
1 G
1 g
1 0 0 1 52 1145.37 Tm
/F1 11 Tf
(UTAH)Tj
1 0 0 1 90 1146.36 Tm
/F1 11 Tf
(NEWS)Tj
1 0 0 1 29 1124.14 Tm
/F1 10 Tf
(the)Tj
1 0 0 1 44 1126.03 Tm
/F1 8 Tf
(oregon)Tj
1 0 0 1 71 1124.47 Tm
/F1 9 Tf
(short)Tj
1 0 0 1 92 1125.47 Tm
/F1 9 Tf
(line)Tj
...
Bonjour les gars, comme je suis sûr que vous le savez, d'autres projets de rendu PDF en souffrent également. J'utilise actuellement une application Web (Nextcloud) qui utilise pdf.js comme moteur de rendu PDF pour son application de navigateur.
Voici un exemple de fichier avec lequel j'ai travaillé sur d'autres utilitaires. Il s'agit d'un extrait numérisé du manuel d'entretien du pilote automatique d'un avion, imprimé à l'origine dans les années 1970 sur un équipement inconnu.
CenturyIIB-origscan.pdf
CenturyIIB-tesseract_hocr-uncleaned.pdf
CenturyIIB-tesseract_hocr-nettoyé.pdf
Le premier fichier est le scan d'origine sans couche de texte. Le second (hocr-non nettoyé) est un PDF/A qui a été traité avec Tesseract (v4.0) pour créer un calque de texte masqué. Le troisième (hocr-uncleaned) a été corrigé avec un
Dans les deuxième et troisième cas, l'option de rendu « hocr » avec Tesseract a été utilisée pour l'étape de rendu OCR (Tesseract a plusieurs moteurs de rendu internes). Si vous jetez un œil au forum des problèmes de Tesseract sur github, vous verrez qu'ils ont apporté quelques modifications à leur moteur de rendu le plus récent dans le but de résoudre également ce problème.
Voici quelques extraits copiés/collés de divers utilitaires...
hocr-unlceaned sur Safari 11.1 (13605.1.33.1.4)
The Century IIB Autopilot is an "Open Loop" system which responds only to the dynamics of the aircraft in flight, thus the only ground checks that can be accomplished are functional checks as described in this bulletin.
hocr-non nettoyé sur Chrome 66.0.3359.181
The Century IIB Autopilot is an "Open Loop" system which responds only to the dynamics of the aircraft in flight, thus the only ground checks that can be accomplished are functional checks as described in this bulletin.
hocr-non nettoyé sur Adobe Acrobat Pro X
The Century IIB Autopilot is an "Open Loop" system which responds only to the
dynamics of the aircraft in flight, thus the only ground checks that can be
accomplished are functional checks as described in this bulletin.
hocr-non nettoyé sur pdf.js (Firefox 60.0.1)
Century
IIB
Autopilot
is
an
"Open Loop"
system
which
responds
only
to
the
dynamics
of
the
aircraft
in
flight,
thus
the
only
ground
checks
that
can
be
accomplished
are
functional
checks
as
described
in
this
bulletin.
hocr-nettoyé sur la même version de Safari ci-dessus
The Century IIB Autopilot is an "Open Loop’ system which responds only to the dynamics of the aircraft in flight, thus the only ground checks that can be accomplished are functional checks as described in this bulletin.
hocr-nettoyé sur la même version de Chrome ci-dessus
The Century IIB Autopilot is an "Open Loop’ system which responds only to the
dynamics of the aircraft in flight, thus the only ground checks that can be
accomplished are functional checks as described in this bulletin.
hocr-nettoyé sur la même version d'Adobe Acrobat Pro ci-dessus
The Century IIB Autopilot is an "Open Loop’ system which responds only to the
dynamics of the aircraft in flight, thus the only ground checks that can be
accomplished are functional checks as described in this bulletin.
hocr-nettoyé sur la même version de pdf.js (Firefox) ci-dessus
Century
IIB
Autopilot
is
an
"Open
Loop’
system
which
responds
only
to
the
dynamics
of
the
aircraft
in
flight,
thus
the
only
ground
checks
that
can
be
accomplished
are
functional
checks
as
described
in
this
bulletin.
Pour tous ceux qui voudraient reproduire ma chaîne d'outils pour d'autres exemples de fichiers ( main /_depedency_)...
tesseract 4.00.00alpha (pour OCR)
_leptonique 1.76.0
libjpeg-turbo 1.5.3
libpng 1.6.34+apng
libtiff 4.0.9_
unpaper 6.1 (pour de-skew, de-noise, etc.)
_libav 12.1
opencv 2.4.13.1
type libre2 2.8_
qpdf 8.0.1 (pour inspection/modification/création de pdf)
_script fantôme 9.16_
OCRmyPDF 6.2.0 (
Tout ce qui précède se trouve dans pratiquement tous les référentiels de packages Linux courants, OCRmyPDF est en pip, et les versions modernes de chacun d'entre eux sont également dans Homebrew pour OSX (tesseract doit être étiqueté sur leur git HEAD car la v4.0 est toujours marquée bêta) . Je les ai également tous exécutés sur FreeBSD (je dois compiler Tesseract, Leptonica et déballer à partir de la source). Tesseract/Leptonica est une excellente base de référence à utiliser pour créer de tels fichiers de test, à mon avis. Ils ont fait avancer l'OCR open source à pas de géant. Voici un exemple tiré d'un scan d'un document du XVIIIe siècle sur lequel il fait même un travail admirable, même s'il ne sait pas ce que sont les "S longs" et ne les transcrit pas en "f" minuscules.
Commentaire le plus utile
j'adorerais travailler dessus,
@timvandermeij S'il vous plaît aidez-moi, par où commencer tout en travaillant sur ce problème