12
votes

ReportLab - Comment introduire la pause de ligne si le paragraphe est trop long pour une ligne

J'ai une liste de texte à ajouter à un cadre de reporterlab xxx

si la légende est trop longue, le texte à la fin n'est pas visible du tout. Comment introduire des pauses de ligne dans cette situation.


2 commentaires

Je vous recommande de poster cela à signalerlab-users@lists2.reporlab.com, les listes de diffusion ne sont probablement pas très cool, mais la liste de diffusion de rapports est toujours la meilleure source d'informations :)


@juanefren cela est-il toujours vrai? J'ai trouvé que la documentation est toujours très superficielle.


3 Réponses :


0
votes
style.wordWrap = 'LTR'
Sorry if I misunderstood this as letter, but Paragraph itself is "word wrapped", in relation to document pagesize also.There's userguide value of 'CJK' for Asian language, possibly your setting do the text to search for finishing line according to something else, like Asian language word splitting. Set it to None should do the thing.

0 commentaires

19
votes

Ceci peut s'appliquer ou ne pas s'appliquer, mais je viens d'apprendre que \ n que j'utilise normalement pour introduire de nouvelles lignes dans Python Strings est ignoré par l'objet de paragraphe de ReportLab.

à partir d'un Liste de diffusion J'ai appris qu'à l'intérieur Paragraphe Vous pouvez utiliser
de HTML pour introduire la nouvelle ligne.

cela fonctionne bien pour moi.


3 commentaires


et
travail. Mais lève un ValueRorror: Paraparser: Erreur de syntaxe: Aucun contenu autorisé dans la balise BR


ReportLab utilise un analyseur XML afin qu'il soit plus xhtml que HTML signification que vous devez avoir une étiquette de fermeture.


Un peu de temps blanc avant et après la chaîne, provoquer une erreur lors des générations de rapport.



13
votes

comme polygeo dit, vous pouvez utiliser
code> pour ajouter de nouvelles lignes à Un paragraphe.

Convertissez de nouvelles lignes en
CODE> Tags strong> P>

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


0 commentaires