Je suis en train de créer un programme Java pour lire les fichiers PDF cryptés et extraire le contenu du fichier page par page incluant le texte, les images et leurs positions (coordonnées x, y) le fichier. Maintenant j'utilise PDFBox à cet effet et je reçois le texte et les images. Mais je n'ai pas pu obtenir la position du texte et la position de l'image. De plus, certains fichiers PDF cryptés posent problème.Lire le texte et l'emplacement des images (coordonnées xy) en utilisant PDFBox
Répondre
Jetez un oeil à org.apache.pdfbox.examples.util.PrintTextLocations
. Je l'ai beaucoup utilisé et il est très utile de faire des analyses sur la disposition des éléments et des limites dans les documents PDF. Il a également révélé des éléments imprimés à l'encre blanche, ou en dehors de la zone imprimable (vraisemblablement des filigranes de documents, ou des éléments «oubliés» poussés hors de vue par l'auteur).
Exemple d'utilisation:
java -cp app/target/pdfbox-app-1.5.0.jar org.apache.pdfbox.examples.util.PrintTextLocations ~/tmp/mydoc.pdf >~/tmp/out-text-locations.txt
Vous obtiendrez quelque chose comme ça:
Processing page: 0
String[53.9,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=4.6679993]A
String[58.568,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=2.6640015]f
String[61.232002,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=1.6679993]e
...
que vous pouvez facilement analyser et utiliser pour tracer la position de l'élément, le cadre limite, et le « flux » (trajectoire à travers tous les éléments), etc. pour chaque page. Comme je suis sûr que vous êtes déjà au courant, vous trouverez que PDF peut être presque impossible à convertir en texte. C'est vraiment juste un format de description graphique (c'est-à-dire pour l'imprimante ou l'écran), pas un langage de balisage. Vous pouvez facilement faire un PDF qui imprime "Hello world", mais qui saute aléatoirement à travers les positions de caractères (et qui utilise des glyphes différents que n'importe quel encodage char, si vous le souhaitez), rendant le PDF très difficile à convertir en texte. Il n'y a pas de notion de "mot" ou de "paragraphe". Un document à deux colonnes, par exemple, peut être un cauchemar à analyser dans un texte.
Pour la deuxième partie de votre question, j'ai eu de bons résultats en utilisant la version xpdf 3,02, après la fixation Xref.cc (faire XRef::okToPrint()
, XRef::okToChange()
, XRef::okToCopy()
et XRef::okToAddNotes()
retourner tous gTrue
). C'est pour manipuler des documents verrouillés, pas cryptés (il y a d'autres utils pour ça).
- 1. texte sélectionné et coordonnées xy
- 2. Créer un pdf avec le texte aux coordonnées données (PDFBox?)
- 3. PDFBox - Système de coordonnées
- 4. région PDFBox PDFTextStripperByArea coordonnées
- 5. xy coordonnées de caret dans iframe
- 6. mettez en surbrillance le texte en utilisant pdfbox quand son emplacement dans le pdf est connu
- 7. Convex Hull lisant les coordonnées XY en Python
- 8. android obtenir xy coordonnées d'un chemin
- 9. Obtenir les coordonnées XY de RichTextBox caret
- 10. java POI PowerPoint besoin coordonnées xy pour une image
- 11. Trouver les coordonnées XY les plus proches
- 12. Longitude, conversion des coordonnées de latitude à XY
- 13. Lire le texte PDF et/ou tout le contenu
- 14. obtenir des coordonnées xy sur html5 déposer événement
- 15. Calculer le Z d'une intersection de lignes en fonction des coordonnées XY?
- 16. Java - PDFBox - Extraction de texte
- 17. Comment lire le texte et les images de cette URL?
- 18. Lire et écrire des images en pixels en Java
- 19. Lire des images DICOM multiframe en utilisant ITK
- 20. Codage de texte Java PDFBOX
- 21. Lire des images depuis HDFS en utilisant mapreduce
- 22. Est-ce que pdfbox peut extraire des images vectorielles?
- 23. Tracer un locus dans l'espace XY en utilisant JFreeChart
- 24. Fusionner des fichiers PDF avec PDFBox en utilisant CLI
- 25. OpenLayers SelectFeature et XY
- 26. PDFBOX: Convertir un pdf en texte ou html, y compris les images du pdf
- 27. Création de pdf d'une page web en utilisant Apache PDFBOX
- 28. Lire et décoder des images jpg
- 29. Lire et imprimer le contenu des fichiers en utilisant Perl
- 30. textboxes à Reading doc mal positionné, les fichiers PDF en utilisant Apache POI et Apache PDFBox