7

私の主な目標は、ページ上のすべての Image フロー可能オブジェクトを、クリック可能なリンクであるかのように機能させることです。これを行うには、canvas.linkRect() を作成し、レンダリングされた画像の上に配置します。canvas.linkRect() の使用例を次に示します。

canvas.linkURL(
    url='url_goes_here',
    rect=(x1, y1, x2, y2), #(x1, y1) is the bottom left coordinate of the rectangle, (x2, y2) is the top right
    thickness=0, relative=1
)

BaseDocTemplate クラスを調べたところ、afterFlowable(self, flowable) というメソッドが見つかりました。そのメソッドをオーバーライドし、渡されたフロー可能で dir() を呼び出した結果、次のようになりました。

['__call__', '__doc__', '__init__', '__module__', '_doctemplateAttr',
'_drawOn', '_fixedHeight', '_fixedWidth', '_frameName', '_hAlignAdjust',
'_showBoundary', '_traceInfo', 'action', 'apply', 'draw', 'drawOn', 'encoding',
'getKeepWithNext', 'getSpaceAfter', 'getSpaceBefore', 'hAlign', 'height',
'identity', 'isIndexing', 'locChanger', 'minWidth', 'split', 'splitOn', 'vAlign',
'width', 'wrap', 'wrapOn', 'wrapped']

これには、linkRect() の大きさ (x2 と y2 はどうあるべきか) を決定するために使用できる幅と高さの属性がありますが、フロー可能な開始位置 (x1 と y1 はどうあるべきか?) に関する情報はありません。

他のすべてが失敗した場合は、Frame と Image Flowable を何らかの方法でペアにすることを考えました。これは、Frame に linkRect() を作成する必要がある情報があるためです。ただし、画像のフレームをどこに配置するかを正確に知る必要があることに加えて、Flowable のそれぞれのリストを使用してフレームのリストをいつどのように注文するかを知るのは面倒です。これを達成する別の方法はありますか、それとも不可能ですか?

ありがとう!

4

1 に答える 1