2010-09-28 324 views
6

tengo una lista de texto que debe añadirse a un marco reportlabReportLab - cómo introducir salto de línea si el párrafo es demasiado largo para una línea

style = getSampleStyleSheet()['Normal'] 
style.wordWrap = 'LTR' 
style.leading = 12 
for legend in legends: 
    elements.append(Paragraph(str(legend),style)) 

Si la leyenda es demasiado largo, el texto en el el final no es visible en absoluto. Cómo introducir saltos de línea en esta situación.

+0

recomiendo yo a publicar esto en [email protected], listas de correo son probablemente no es muy bueno, pero la lista de correo de ReportLab sigue siendo la mejor fuente de información :) – juanefren

Respuesta

0
style.wordWrap = 'LTR' 

Lo siento si no he entendido esto como carta, pero sí es el párrafo "palabra envuelta", en relación con el documento tamañopágina también.

Hay un valor de guía de usuario de 'CJK' para el idioma asiático, posiblemente su configuración haga el texto para buscar la línea de llegada según otra cosa, como la división de palabras en idiomas asiáticos. Establézcalo en Ninguno debería hacer la cosa.

9

Esto puede aplicarse o no, pero me acabo de enterar de que \n que normalmente uso para introducir nuevas líneas en cadenas Python es ignorado por el objeto Párrafo de ReportLab.

De un mailing list aprendí que dentro de Párrafo puedes usar HTML's <br/> para introducir la nueva línea.

Eso funciona bien para mí.

2

Como dice PolyGeo, puede usar <br /> para agregar nuevas líneas a un párrafo.

Convertir nuevas líneas a <br /> etiquetas

replace('\n','<br />\n') 

código actualizado

for legend in legends: 
     content = str(legend).replace('\n','<br />\n') 
     elements.append(Paragraph(content, style)) 
Cuestiones relacionadas