2

現在、次を使用して文字列のみを描画するレポート ラボの 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、関数が取得する引数をログに記録しようとしたため、何も取得できません。

4

1 に答える 1

4

私が使用していた方法に問題はなく、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"
},
于 2013-02-25T12:08:24.610 に答える