jueves, 23 de mayo de 2024

Documentos. Python.

Script de Python para crear documentos

Después de exponer el esquema general, voy a continuar por explicar cómo entiendo el modo externo (1), y más concretamente la subdivisión que aprecio dentro de lo que en ese esquema identifiqué como modo 1A.


Dentro de éste considero necesario diferenciar entre lo que es crear un archivo de texto plano, que puedo identificar con extensión .txt, pero también como .doc, .odt o cualquier otra compatible con los procesadores de texto (Word y Writer, para ser más concretos), aunque siguen siendo archivos de texto plano (a esto llamo modo 1A1), de lo que supone crear archivo doc, xls o dpf en sentido estricto (modo 1A2).

El primero modo (1A1) es en realidad una forma de "engañar" a writer para que acceda directamente al archivo odt (también puede acceder a doc, como ya sabemos), para poder trabajar con él, aunque también puede hacerlo con un archivo txt sin mayor problema.

Mediante el segundo modo (1A2)  creamos archivos "originales" MSO o Acrobat, no archivos de texto plano, y tanto doc como xls son accesibles a LO-Writer/Calc, pero por la compatibilidad de LO, no por efecto de Python. Además, en este caso (1A2), para crearlos necesitamos trabajar en Python con paquetes (librerías) específicos (from... import) que previamente deberemos haber instalado (pip install).

Dejamos (de momento) 1A2 y nos centramos en la forma más simple (realmente muy simple) de crear documentos accesibles desde LO-Writer. Y digo bien, desde Writer, ya que este modo no es funcional para crear archivos compatibles con Calc (sí posible, pero no funcional).

Habrá que diferenciar dos momento o fases dentro de esto modo 1A1:

  • La fase (A) de creación del archivo (de momento, para más detalle, ver  las entradas de ARCHIVO en este mismo blog) mediante script Python
  • Y la base (B) de trabajo con el archivo desde LO-Writer.
En sentido estricto no podemos decir que estemos generando un docap, no al menos en la forma en que lo hemos creado hasta ahora mediante OOoBasic; pero no por ello deja de ser una forma sencilla de utilizar Python como alternativa a OOo Basic, aunque yo diría que más que alternativa, complementaria.

Complementaria porque también OOoBasic, bien como macro (funcionalidad Grabar macro), bien como script, resulta, no imprescindible pero sí conveniente para llegar a un resultado que podemos considerar equivalente a la automatización de documentos mediante OOo Basic (docap). Eso sí, con una limitación: debemos ceñirnos a trabajar con texto plano, sin elementos gráficos (vg. tablas), al que opcionalmente podemos dar formato desde LO-Writer con macros.

Y digo con macros porque me atrevo a ir un poco más allá en recomendaciones: en el momento actual de mis conocimientos planteo como más adecuado complementar el proceso con el uso de macros en vez de script; es mucho más sencillo e igual de funcional, por lo que nos será mucho más fácil crear este tipo de recursos.

Manteniendo este principio de funcionalidad y sencillez, en el momento actual, para los primeros desarrollo del modo 1A1 planteo usar la consola (símbolo del sistema en Windows) como recurso input. Esto nos ahorra la complejidad que implica la creación e implementación de una GUI (vg., basada en tkinter) y permite que nos centremos en la lógica de programación. Además el uso del cmd (consola) es perfectamente coherente con la simplicidad que buscamos y a la que debemos aspirar como profesionales ajenos a la programación profesional, aunque usuarios competentes de un lenguaje de programación que priorizan la funcionalidad frente al diseño. 

Este enfoque es similar al que observo en profesionales de otros campos (la medicina, el derecho, las ingenierías...) que también priorizan en el uso de Python (también de OOo Basic) la sencillez y la funcionalidad sobre el diseño. Creo que esto va en sentido lo contrario a lo que entiendo se busca desde determinados enfoques del desarrollo competencial docente: frente al consumidor de productos que supone la apuesta de la Administración por los lenguajes de autor, la  competencia que facilita el pensamiento computacional que promueve el aprendizaje y uso de un lenguaje de programación orientado al logro de objetivos profesionales relevantes.

Dado que lo creado hasta el momento es muy básico (no busco ahora utilidad alguna) será suficiente con que accedas al script Python, y a la macro de LO (1)

Y por si te interesa profundizar en el contenido, la forma y el funcionamiento, aquí tienes el vídeo que complementa esta entrada.


NOTA 1. En realidad se trata de un archivo .txt que deberás descargar y copiar en el IDE de LibreOffice, Mis_macros_y_diálogos.

No hay comentarios:

Publicar un comentario

Comenta esta entrada