3

テーブルの行を2ページ以上に分割する機能があるかどうか疑問に思います。行の一部の情報が1ページに対して長すぎる可能性があり、1行がページサイズよりも長い場合は、例外が発生します。

4

1 に答える 1

1

ReportLabは、箱から出してテキストを折り返すことはないので、テーブルセルでパラグラフを使用しているか、simpleSplitを使用して手動で行を分割していると想定しています。

テキストが1行の文字列の場合は、次を使用できます。

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 に答える