ReportLab的图片将在PDF Canvas上显示镜像,其中包含以下代码段:
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)
如何将它“正常”绘制,正如人们所期望的那样?
答案 0 :(得分:4)
使用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()
答案 1 :(得分:3)
我目前无法测试,但可能是因为您创建bottomup = 0
对象时Canvas
。默认值为1
。来自documentation:
自下而上的参数可以切换坐标系。一些图形系统(如PDF和PostScript)在页面的左下角放置(0,0)其他(如许多图形用户界面[GUI])将origen放在左上角。 bottomup参数已弃用,将来可能会被删除
需要看看它是否真的适用于所有任务,如果没有,那就去除它
鉴于该引用中的警告,我的猜测是将其设置为0
是问题的根源。
答案 2 :(得分:0)
使用左下角的原点(0,0)绘制图片。
canvas.saveState()
canvas.transform(1, 0, 0, -1, 0, H)
draw_your_picture_code()
canvas.restoreState()
H
是页面的高度。