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