如何使用SimpleDoctTemplate在reportlab pdf上生成图像

2024-09-28 17:16:03 发布

您现在位置:Python中文网/ 问答频道 /正文

在pdf上生成图像时遇到一些问题。当我使用canvas.canvas()时,它可以工作,因为我可以使用drawinlineImage()函数。它将字节转换为图像

但是,当我想使用表时,我不能将对象转换为图像

下面的代码返回<;PIL.JpegImagePlugin.JpegImageFile图像模式=RGB大小=1920x1080,0x3CC8C10>;在pdf上,而不是在图像上

有没有一种方法可以使用请求在表中生成图像

谢谢


from reportlab.pdfgen import canvas
from reportlab.lib.units import inch, cm
from reportlab.lib.utils import ImageReader
from reportlab.platypus import SimpleDocTemplate, Table, Image
from reportlab.lib.pagesizes import letter

import urllib.request
import requests
from PIL import Image as PIL_Image
from PIL import ImageDraw
from io import BytesIO

loc = os.path.join(os.path.join(
    os.environ['USERPROFILE']), 'Desktop', 'test.pdf')

pdf = SimpleDocTemplate(loc)

r = requests.get(url)

i = PIL_Image.open(BytesIO(r.content))

table = Table([[i]])

elems = []
elems.append(table)
pdf.build(elems)


Tags: from图像imageimportpilpdfoslib