J'utilise iTextSharp et la méthode reader.GetPageContent pour extraire le texte d'un PDF. J'ai besoin de trouver le rectangle/position pour chaque mot trouvé dans le document. Est-il possible d'obtenir le rectangle/la position d'un mot dans un fichier PDF en utilisant iTextSharp?iTextSharp - Comment obtenir la position d'un mot sur une page
Répondre
Oui il y a. Découvrez le package text.pdf.parser
, plus précisément LocationTextExtractionStrategy
. En fait, cela pourrait ne pas faire l'affaire non plus. Vous aurez probablement envie d'écrire votre propre TextExtractionStrategy
pour alimenter PdfTextExtractor:
MyTexExStrat strat = new MyTexExStrat();
PdfTextExtractor.getTextFromPage(reader, pageNum, strat);
// get the strings-n-rects from strat.
public class MyTexExStrat implements TextExtractionStrategy {
void beginTextBlock() {}
void endTextBlock() {}
void renderImage(ImageRenderInfo info) {}
void renderText(TextRenderInfo info) {
// track text and location here.
}
}
Vous aurez probablement envie de regarder la source de LocationTextExtractionStrategy pour voir comment il combine le texte qui partage une base de référence. Vous pourriez même simplement modifier LTES pour stocker des tableaux parallèles de chaînes et de rects.
PS: pour construire les rects, vous pouvez juste obtenir le AscentLine & DescentLine et utiliser ces coordonnées comme les coins supérieurs et inférieurs:
Vector bottomLeft = info.getDescentLine().getStartPoint();
Vector topRight = info.getAscentLine().getEndPoint();
Rectangle rect = new Rectangle(bottomLeft.get(Vector.I1),
bottomLeft.get(Vector.I2),
topRight.get(Vector.I1),
topRight.get(Vector.I2));
Attention: Le code ci-dessus cul-u-mes que le texte est horizontal et va de gauche à droite. Le texte pivoté le vrillera, tout comme le texte vertical ou le texte de droite à gauche (arabe, hébreu). Pour la plupart des applications, ce qui précède devrait être bon, mais sachez que c'est des limites.
Bonne chasse.
Remarque: L'analyseur LocationTextExtractionStrategy ne trouve pas nécessairement de texte dans l'ordre d'apparition sur le document. J'ai mis du texte dans des pieds de page (fichiers .docx) puis les convertis en PDF (avec DOCX4J). J'ai trouvé que l'analyseur trouverait du texte, quel était le pied de page du fichier .docx, puis dans la section du corps. c'est-à-dire localiser le texte au bas du document, puis le texte au-dessus. Si vous avez besoin de localiser dans l'ordre d'apparition, vous pourriez trouver que vous avez besoin de trier vos résultats vous-même. –
Consultez ce lien pour la version C# https://stackoverflow.com/questions/23909893/getting-coordinates-of-string-using-itextextractionstrategy-and-locationtextextr –
- 1. iTextSharp: obtenir la hauteur de l'image
- 2. Position de Google Javascript sur une page
- 3. iTextSharp obtenir PDF DPI
- 4. Centrer une page pdfimported dans iTextSharp
- 5. Ajouter une page au milieu de itextsharp
- 6. Obtenir la position du gtk.StatusIcon sur Windows
- 7. iTextSharp table largeur 100% de la page
- 8. Comment utiliser PDFTextExtractor sur iTextSharp
- 9. Trouver le mot sur la position donnée dans le texte
- 10. itextsharp: comment positionner une table?
- 11. Comment obtenir la position de la souris?
- 12. Comment obtenir une position de div? jquery
- 13. Comment obtenir la position du curseur
- 14. ITextSharp - fusionner deux pdfs en une seule page
- 15. Comment obtenir la position() d'un XElement?
- 16. obtenir la position de l'élément
- 17. Comment obtenir la position supérieure d'un élément?
- 18. onMouseMove obtenir la position de la souris
- 19. Comment obtenir la position de chaque caractère
- 20. Cocoa: Obtenir la position actuelle de la souris sur l'écran
- 21. Comment obtenir la position d'un élément enfant
- 22. Comment obtenir la position dans une instruction select
- 23. Ajouter une page au document PDF en utilisant iTextSharp
- 24. Comment obtenir la position de l'élément
- 25. comment obtenir la position de simplexmlobject php
- 26. iTextSharp Création d'un pied de page Page # de #
- 27. Obtenir la position de pdfptable
- 28. Obtenir la position de JPopupMenu
- 29. Obtenir la position des icônes sur le bureau
- 30. Obtenir la position de l'élément par javascript
Avez-vous trouvé une bonne solution à votre problème? – d456