python-docx
Sangrado de párrafos
En esta entrada sobre el uso de funciones de formato en python-docx trataré una cuestión que se me antoja de suficiente interés como para no prescindir de ella en este breve recorrido por esta biblioteca: el sangrado del texto. Este interés viene dado, como en los casos anteriores, por la frecuencia con se emplea en el trabajo con textos, especialmente el sangrado de la primera línea del párrafo. Por motivos de procedimiento dejaré esta cuestión para el final, ya que antes es conveniente explicar cómo se procede para sangrar el párrafo.
Procedemos a sangrar el párrafo (no sólo la primera línea) por la izquierda (también podemos hacerlo por la derecha). Para ello, tras importar las funciones de trabajo en pulgadas from docx.shared import Inches, desarrollamos la siguiente secuencia de acciones:
- Escribimos el párrafo según el procedimiento común
parrafo1 = documento.add_paragraph(txt), que en este caso emplea la variabletxtcomo parámetro en lugar del texto del párrafo. - Accedemos a la propiedad general de formato del párrafo
formateoIzq = parrafo1.paragraph_formatque referenciamos sobre la variableformateoIzq - Y sobre esta variable accedemos a la propiedad
left_indenta la que damos valorInches(1.5)
formateoIzq.left_indent = Inches(1.5)
En realidad los pasos 2 y 3 son una forma de evitar la escritura de una instrucción larga, que también es válida,por lo que ...
parrafo1.paragraph_format.left_indent = Inches(1.5)
... es equivalente a las dos anteriores. Y si quisiéramos que el sangrado fuera a la derecha, sería suficiente con sustituir left_indent por right_indent. Así de sencillo.
De modo similar, si en lugar de sangrar todo el párrafo sólo quisiéramos sangrar la primera línea, recurriríamos a la propiedad first_line_indent como alternativa a cualquiera de las dos anteriores. Por aclararlo mejor: el tercer paso del proceso se concretaría como formateoL1.first_line_indent = Inches(1) (por claridad del código en el scritp, sustituyo la variable formateoIzq por formateoL1).
El valor numérico pasado como parámetro a Inches() puede ser positivo (como en este caso) o negativo Inches(-1), lo que modifica el aspecto del párrafo, pero no supone ninguna modificación de la lógica de script.
Documento Este es el enlace al script explicado en la entrada.
No hay comentarios:
Publicar un comentario
Comenta esta entrada