No estoy familiarizado con la especificación de PDF en absoluto. Me preguntaba si es posible manipular directamente un archivo PDF para que ciertos bloques de texto que he identificado como importantes estén resaltados en colores de mi elección. El idioma de elección sería Python.Cambiar el color de fuente del texto mediante programación en PDF
Respuesta
Es posible, pero no necesariamente fácil, porque el formato PDF es muy rico. Puede encontrar un documento que lo describe en detalle en here. El primer ejemplo elemental que da acerca de cómo mostrar texto de archivos PDF es:
BT
/F13 12 Tf
288 720 Td
(ABC) Tj
ET
BT y ET son órdenes para empezar y acabar un objeto de texto; Tf es un comando para usar el recurso de fuente externo F13 (que es Helvetica) en el tamaño 12; Td es un comando para posicionar el cursor en las coordenadas dadas; Tj es un comando para escribir los glifos de la cadena anterior. El sabor es algo así como "notación polaca inversa" -oid, y de hecho bastante parecido al sabor de Postscript, una de las otras grandes contribuciones de Adobe a la composición tipográfica.
El problema es que no hay nada en las especificaciones de PDF que diga que el texto que "parece" que pertenece al mismo tiempo en la página como se muestra debe estar "realmente" unido; dado que siempre se pueden dar coordenadas precisas, si el PDF se genera mediante un sofisticado sistema de diseño de tipografía, puede colocar el texto de forma precisa, carácter por carácter, mediante coordenadas. Reconstruir el texto en forma de palabras y oraciones no es necesariamente fácil, es casi tan difícil como el reconocimiento óptico de texto, excepto que se le asignan los caracteres con precisión (bueno, casi ... algunas supuestas "imágenes" podrían mostrarse como personajes) ... ;-).
pyPdf es una biblioteca muy simple de Python puro que es un buen punto de partida para jugar con archivos PDF. Su función de "extracción de texto" es bastante elemental y no hace más que concatenar los argumentos de unos pocos comandos de dibujo de texto; verá que eso es suficiente en algunos documentos, y es bastante inutilizable en otros, pero al menos es un comienzo. Según se distribuye, pyPdf no hace casi nada con los colores, pero con algunos ataques que podrían remediarse.
reportlab potente biblioteca de Python se centra exclusivamente en la generación de nuevos archivos PDF, no en la interpretación o modificación de los existentes. En el otro extremo, la biblioteca de Python pura pdfminer se centra completamente en el análisis de archivos PDF; hace algunos clusters para tratar de reconstruir el texto en casos en los que las bibliotecas más simples se perdería.
No conozco una biblioteca existente que realice las tareas de transformación que usted desea, pero debería ser posible mezclar y combinar algunas de estas existentes para obtener la mayor parte de ellas ... ¡buena suerte!
Lo más destacado es posible en el archivo pdf utilizando anotaciones PDF, pero hacerlo de forma nativa no es tarea fácil. Si alguna de la biblioteca mencionada proporciona tal facilidad es algo que puede buscar.
- 1. Cómo cambiar el color del texto/fuente en reportlab.pdfgen
- 2. ¿Cómo cambiar el color de fondo del diálogo mediante programación?
- 3. Cambio del color del botón mediante programación
- 4. Cambiar el color del texto en Eclipse
- 5. Cómo establecer el color del texto en una vista de texto mediante programación
- 6. Cambiar el color del texto en MoreNavigationController
- 7. Cambiar el color del texto en el campo de texto
- 8. ¿Cómo cambiar el color del cursor sin cambiar el color del texto?
- 9. cambiar una fuente programación
- 10. Cómo cambiar el texto de UIBarButtonItem mediante programación?
- 11. ¿Cómo cambiar el color del texto seleccionado?
- 12. ¿Cambiar el color del texto en una vista Web?
- 13. ¿Cómo puedo cambiar la fuente de una etiqueta mediante programación?
- 14. Cambiar el ancho del botón mediante programación en Android
- 15. Cambiar la fecha del sistema mediante programación
- 16. Extraiga las tablas en PDF mediante programación
- 17. Cambiar el color del texto resaltado en Android
- 18. Cambiar el color y la fuente de una parte del texto en WPF C#
- 19. Cambiar el usuario del servicio de Windows mediante programación
- 20. ¿Cambiar el color del texto del cuadro de grupo?
- 21. ¿Cambiar el color del cursor de texto (cursivo) en Cocoa?
- 22. ¿Cómo cambiar el color del texto de IcsSpinner en ActionBarSherlock?
- 23. Cambiar la fuente del área de texto
- 24. Cómo buscar mediante programación un documento PDF en C#
- 25. Cómo cambiar el color de la fuente DrawThemeTextEx?
- 26. Cambiar el color del texto del shell (Windows)
- 27. Cambiar el color del texto del botón cuando se selecciona
- 28. Convierta Word (docx) mediante programación a PDF
- 29. ¿Cómo cambiar el color del texto en JtextArea?
- 30. Cómo cambiar el color del texto en Highcharts
He intentado leer un pdf, pero es un poco de carácter y una secuencia, puedo reconocer PDF y EOF y hay muchos caracteres especiales. ¿hay alguna codificación específica? ¿Podría compartir un código simple para buscar BT y ET, tuve la misma pregunta que está en http://stackoverflow.com/questions/12982188/how-to-access-lines-in-a-pdf-page-programmatically -y-darles-diferente-color, gracias – Shan