【问题标题】:How do you insert an image using Report Lab's canvas drawImage()?如何使用 Report Lab 的画布 drawImage() 插入图像?
【发布时间】:2013-01-31 04:03:55
【问题描述】:

我希望使用报告实验室的 pdfgen 扩展工具的功能,该工具目前仅使用;

if json_data[definition["field"]] != "":
    c.drawString(
        definition["x"] * cm,
        definition["y"] * cm,
        json_data[definition["field"]]
)

和json;

{
    "field":"name",
    "x":1.8,
    "y":10
},

所以为了绘制图像而不是字符串,我做了以下操作;

if json_data[definition["field"]] != "":
    if definition.has_key("image"):
        c.drawImage(
            os.path.join(os.getcwd(), "images", "successIcon.gif"),
            definition["x"] * cm,
            definition["y"] * cm,
            width=16, height=16,
        )
    else:
        c.drawString(
            definition["x"] * cm,
            definition["y"] * cm,
            json_data[definition["field"]]
)

将 json 更新为;

{
    "field":"name",
    "x":1.8,
    "y":10,
    "image":"name"
},

drawImage 的调用有什么问题吗?根据文档,它看起来是正确的,但它没有达到drawImage,因为我试图记录函数获取的参数,但我什么也没得到。

【问题讨论】:

    标签: python pdf-generation reportlab drawimage


    【解决方案1】:

    我之前使用drawImage的方法没有问题,目前正在使用下面的代码成功;

    # If we have an image attribute
    if definition.has_key("image"):
        if str(json_data[definition["field"]]) == 'True':
            # need to replace this with url on attribute
            filename = os.path.join(
                os.getcwd(),
                "static",
                "images",
                definition["image"]
            )
            c.drawImage(filename, definition["x"] * cm, definition["y"] * cm, 10, -10)
    

    以及对应的json来指定图片文件名;

    {
        "field":"name",
        "x":1.66,
        "y":19.45,
        "image":"image.jpg"
    },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-01
      • 2013-11-01
      • 2018-12-25
      • 1970-01-01
      • 2014-05-12
      • 1970-01-01
      相关资源
      最近更新 更多