5

ReportLabの画像は、次のコード スニペットを使用して PDF キャンバスにミラーリングされます。

from reportlab.pdfgen import canvas
from reportlab.platypus import Image

pdf = canvas.Canvas(filename, bottomup=0)

logo_image = Image(
    "%s/images/wsp_logo.jpg" % settings.STATIC_ROOT,
    width=200,
    height=200) 
logo_image.drawOn(pdf, 100, 100)

期待どおりに「通常」に描画するにはどうすればよいですか?

4

4 に答える 4

5

canvas.scale 関数を使用して画像を反転します。

canvas.saveState()
canvas.translate(x, y)
canvas.scale(1,-1)
canvas.drawImage(img_path, 0, 0, width=-width, height=-height, mask='auto')
canvas.restoreState()
于 2012-08-03T06:44:30.390 に答える
3

現時点ではテストできませんが、オブジェクトbottomup = 0の作成が原因である可能性があります。Canvasデフォルトは です1ドキュメントから:

ボトムアップ引数は、座標系を切り替えます。一部のグラフィックス システム (PDF や PostScript など) では (0,0) がページの左下に配置され、他のグラフィックス システム (多くのグラフィカル ユーザー インターフェイス [GUI] など) では原点が左上に配置されます。ボトムアップ引数は推奨されておらず、将来削除される可能性があります

すべてのタスクで本当に機能するかどうかを確認する必要があり、そうでない場合は削除します

その引用の警告を考えると、それをに設定することが問題の原因であると私は推測しています0

于 2011-05-27T11:01:14.413 に答える
0

左下隅を原点(0,0)として絵を描きます。

canvas.saveState()
canvas.transform(1, 0, 0, -1, 0, H)
draw_your_picture_code()
canvas.restoreState()

Hページの高さです。

于 2016-10-19T06:22:26.983 に答える