3

我想知道是否有一些功能可以在两页或更多页上拆分表格行。导致行中的某些信息对于一页来说可能太长,如果一行长于页面大小,则会导致异常。

4

1 回答 1

1

ReportLab 没有开箱即用的文本换行,因此我假设您在表格单元格中使用 para,或者您正在使用 simpleSplit 手动换行。

如果您的文本是一个行字符串,那么您可以使用

from reportlab.pdfbase.pdfmetrics import stringWidth
textWidth = stringWidth(text, fontName, fontSize)

如果您的文本是多行的,假设您在定义宽度的矩形区域中工作,那么执行

from reportlab.lib.utils import simpleSplit
lines = simpleSplit(text, fontName, fontSize, maxWidth)

lines 是段落所有行的列表,如果您知道行距值,则可以将段落的高度计算为 lineSpacing*len(lines)

如果这被证明比您的页面长,那么使用您所在的任何模板(preppy、django、ninja 等)为您的文本找到一个很好的断点并结束当前行并开始一个新行。

我希望这有帮助

梅瑟姆

ps 你可以随时将你的问题发送到reportlab邮件列表,他们通常会很快回答这些问题。

于 2010-07-26T14:46:08.597 回答