これは、
reportlab
を使用してPDFファイルにテキストを書き込むために機能します
:
from reportlab.pdfgen import canvas
from reportlab.lib.units import cm
c = canvas.Canvas("test.pdf")
c.drawString(1 * cm, 29.7 * cm - 1 * cm, "Hello")
c.save()
しかし、複数行のテキストを処理する場合、
x, y
を処理する必要があるのは不快です各新しい行の座標:
text = "Hello\nThis is a multiline text\nHere we have to handle line height manually\nAnd check that every line uses not more than pagewidth"
c = canvas.Canvas("test.pdf")
for i, line in enumerate(text.splitlines()):
c.drawString(1 * cm, 29.7 * cm - 1 * cm - i * cm, line)
c.save()
reportlab
でこれを行うより賢い方法はありますか
?
回答 1 件
関連記事
- C ++で、プレフィックス「cout」を継続的に追加しなくても、文字列出力の複数行を入力することは可能ですか?
- 文字列Androidの複数の行をトリミングするにはどうすればよいですか?
- 複数の行を正規表現に置き換えます
- VIMの複数行をテキスト幅まで視覚的に選択して分割
- Rを使用して、動的なsheetNamesを使用してExcelで複数のシートを作成します
- rust 126以降で複数の文字列を互いに上書きせずにファイルに書き込むにはどうすればよいですか?
- 複数の場所にファイルを書き込む(異なるファイルシステム)
- dplyrの%>%パイプを使用して複数のR変数を操作できるR関数を作成するにはどうすればよいですか?
- Pythonの複数のコード行の関数ラッパー
- 複数の列の散布図および/または回帰直線をプロットするR
1つのオプションは、reportlabが提供するFlowablesを使用することです。flowable要素の1つのタイプは
Paragraph
です 。段落サポート<br>
改行として。2番目のオプションは、
drawText
を使用することです とTextObject
: