Estoy usando iTextSharp y el método reader.GetPageContent para extraer el texto de un PDF. Necesito encontrar el rectángulo/posición para cada palabra encontrada en el documento. ¿Hay alguna manera de obtener el rectángulo/posición de una palabra en un PDF usando iTextSharp?iTextSharp - Cómo obtener la posición de la palabra en una página
Respuesta
Sí, sí. Consulte el paquete text.pdf.parser
, específicamente LocationTextExtractionStrategy
. En realidad, eso tampoco puede hacer el truco. Es probable que desea escribir su propia TextExtractionStrategy
para alimentar 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.
}
}
es probable que desee para mirar la fuente de LocationTextExtractionStrategy para ver cómo se combina texto que comparte una línea de base. Incluso podría modificar LTES para almacenar matrices paralelas de cadenas y rects.
PS: para construir las rectas, sólo puede obtener la DescentLine AscentLine & y usar esas coordenadas como las superiores e inferiores esquinas:
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));
Advertencia: El código anterior culo-u-mes que el texto es horizontal y procede de izquierda a derecha. El texto girado lo arruinará, al igual que el texto vertical o el texto de derecha a izquierda (árabe, hebreo). Para la mayoría de las aplicaciones, lo anterior debería estar bien, pero conozca sus límites.
Buena caza.
Nota: El analizador LocationTextExtractionStrategy no ubica necesariamente el texto en el orden de aparición en el documento. He estado poniendo texto en los pies de página (archivos .docx) y luego los he convertido a PDF (con DOCX4J). Descubrí que el analizador encontrará el texto, cuál era el pie de página del archivo .docx, luego en la sección del cuerpo. es decir, ubique el texto en la parte inferior del documento, luego envíe el texto arriba. Si necesita ubicarlo en el orden de aparición, es posible que deba ordenar los resultados usted mismo. –
Echa un vistazo a este enlace para la versión de C# https://stackoverflow.com/questions/23909893/getting-coordinates-of-string-using-itextextractionstrategy-and-locationtextextr –
- 1. cómo obtener la posición actual en FragmentPagerAdapter?
- 2. Ancho de la tabla iTextSharp 100% de la página
- 3. jquery cómo obtener la posición actual de la pantalla actual de la página?
- 4. Div desplazándose con la página en una posición fija
- 5. Negrita una sola palabra dentro de una oración con iTextSharp
- 6. ¿Cómo obtener la posición actual de una imagen en jQuery?
- 7. ¿Cómo obtener la posición de desplazamiento máxima de una página con precisión?
- 8. Cómo obtener la palabra tocada en una UILabel/UITextView
- 9. ¿Cómo obtener la posición de un clic?
- 10. ¿Cómo obtener y configurar la posición de desplazamiento de la página web actual?
- 11. cómo recordar la posición de desplazamiento de la página
- 12. ¿Cómo obtener la posición del artículo en una lista?
- 13. Obtener la posición del ratón en desplazamiento
- 14. ¿Cómo obtener la posición correcta de Element?
- 15. ITextSharp - fusiona dos pdfs en una sola página
- 16. Cómo obtener la posición del cursor en un eclipse TextEditor
- 17. JavaScript obtener la palabra antes del cursor
- 18. Fuerza la posición de desplazamiento de la página hacia arriba al actualizar la página en HTML
- 19. Mantener posición de la página en la devolución de datos
- 20. Insertar página en PDF existente usando itextsharp
- 21. ¿Cómo obtener la palabra debajo del cursor?
- 22. Obtener la posición de una etiqueta div/span
- 23. Obtener una posición en ListView
- 24. onMouseMove obtener la posición del mouse
- 25. Cómo obtener la posición del cursor
- 26. ¿Cómo agrego un borde a una página usando iTextSharp?
- 27. Obtener la posición del cursor en Android en Editar texto?
- 28. Obtener palabra de mucho toque en una palabra de UITextView
- 29. Obtener la posición de la primera letra mayúscula en una cadena utilizando php
- 30. Obtener la posición de una ruleta en Android
¿Encontró una buena solución a su problema? – d456