Mein Hauptziel ist es, alle Bild-Flowables auf einer Seite so zu gestalten, als handle es sich um anklickbare Links. Um dies zu tun, würde ich ein canvas.linkRect() erstellen und es über das gerenderte Bild platzieren. Hier ist ein Beispiel dafür, wie ich canvas.linkRect():Ist es möglich, die Koordinatenposition eines Flowables zu erhalten, nachdem es mit ReportLab.platypus gerendert wurde?
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
)
Nachdem er in der BaseDocTemplate Klasse suchen, habe ich eine Methode gefunden genannt afterFlowable (self, fließfähig). Ich overrode diese Methode und nannte dir() auf dem fließfähigen gebenen, in dieser resultierenden:
['__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']
Es hat eine Breite und Höhe Attribut ich verwenden, um bestimmen könnte, wie groß die linkRect() sein sollte (was für x2 und y2 sollte), aber keine Informationen darüber, wo die fließfähige beginnt (was sollte x1 und y1 sein?).
Wenn alles andere fehlschlägt, habe ich mir überlegt, irgendwie einen Frame und ein Image Flowable miteinander zu paaren, da ein Frame die Information hat, dass ich eine linkRect() erstellen möchte. Wie auch immer, es scheint mühsam zu wissen, wann und wie man eine Liste von Frames mit der entsprechenden Liste von Flowables bestellt, zusätzlich dazu, genau wissen zu müssen, wo diese Frames für Bilder zu platzieren sind. Gibt es einen anderen Weg dies zu erreichen oder ist es nicht möglich?
Danke!