ReportLab Canvas: добавить текст с гиперссылкой - PullRequest
0 голосов
/ 01 мая 2019

Я пытаюсь добавить текст со ссылкой, используя ReportLab Canvas.

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4

c = canvas.Canvas("../media/quotes/test.pdf", pagesize=A4)

deco_logo = ImageReader('../static/img/new-logo.png')
c.drawImage(deco_logo, 10, 772, mask='auto')

quickstep_logo = ImageReader('../static/img/QuickStep-logo.jpg')
c.drawImage(quickstep_logo, 425, 758, width=161 ,height=70 , mask='auto')

#
motto = '<link href="https://www.facebook.com/KenyaHomesExpo/posts/2096214210455800?__xts__%5B0%5D=68.ARCB4JT7q3W-idVUY-bJbC902-euV6DS6AOv8AHe0k9SPRHvRR95N2aEBkehIwW2P6QCxibQHZB9kKmC4uHaIjICIgEdXwROc5-z-tXCaLKXH655AtXeQQo94KqB-6r8csqc_D8RxE7sxhxHppmYabM9x_1w1TGSDpeYGO2FuE2Z3mtmUUVQ7bYs8B6Nglds0_yu89JwRZOssLu_daXpluKT7R4gyaSclGYR1BB9sewlgOgdE-ZbZ_e57WvF3mASy1c-wJE0SE3BK7w7AbclMQhrgp8ep8jIEgxN8BcICHbMWfUC6MvS74PRDg0nxKB9ve6RNvhbENiMDmMvwp8GaFbFpw&__tn__=-R">The Kenya Homes Expo</link>'

c.drawString(100, 775, motto)

enter image description here

это выглядит даже при использовании <a href="link">Text</a> format.

Это выполнимо, потому что у вас может быть документ в формате pdf со ссылкой, он искал того, кто делает это, но не нашел прямого ответа.

Использование platypus

motto = '<link href="https://www.facebook.com/KenyaHomesExpo/posts/2096214210455800?__xts__%5B0%5D=68.ARCB4JT7q3W-idVUY-bJbC902-euV6DS6AOv8AHe0k9SPRHvRR95N2aEBkehIwW2P6QCxibQHZB9kKmC4uHaIjICIgEdXwROc5-z-tXCaLKXH655AtXeQQo94KqB-6r8csqc_D8RxE7sxhxHppmYabM9x_1w1TGSDpeYGO2FuE2Z3mtmUUVQ7bYs8B6Nglds0_yu89JwRZOssLu_daXpluKT7R4gyaSclGYR1BB9sewlgOgdE-ZbZ_e57WvF3mASy1c-wJE0SE3BK7w7AbclMQhrgp8ep8jIEgxN8BcICHbMWfUC6MvS74PRDg0nxKB9ve6RNvhbENiMDmMvwp8GaFbFpw&__tn__=-R">The Kenya Homes Expo</link>'

c.drawString(100, 775, platypus.Paragraph(motto, PS('body')))

выдает эту ошибку:

Traceback (most recent call last):
File "generate_pdf.py", line 35, in <module>
    estimate_quote(form_data, rooms_info)
File "generate_pdf.py", line 29, in estimate_quote
    c.drawString(100, 775, platypus.Paragraph(motto, PS('body')))
File "/home/sam/code/envs/decomagna/lib/python3.6/site-packages/reportlab/pdfgen/canvas.py", line 1564, in drawString
    text = text.decode('utf-8')
AttributeError: 'Paragraph' object has no attribute 'decode'
...