当将 PIL 图像对象与 reportlab drawImage 一起使用时,给出

use*_*511 3 python reportlab python-imaging-library

我正在尝试使用reportlab drawImage 方法将PIL 图像对象插入到pdf 中。

 im=Image.open('back_ground.png')
 side_im=im.crop((2,2,277,819))
 c=canvas.Canvas('report.pdf')
 c.drawImage(side_im,200,700)
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

AttributeError: 'Image' object has no attribute 'rfind'
Run Code Online (Sandbox Code Playgroud)

小智 6

只是为了更新,因为 StringIO 在 Python3 中已被弃用。导入 io 而不是 StringIO 并使用 io.BytesIO()

import io
from reportlab.lib.utils import ImageReader

im=Image.open('back_ground.png')
side_im=im.crop((2,2,277,819))
c=canvas.Canvas('report.pdf')

#c.drawImage(side_im,200,700)
side_im_data = io.BytesIO()
side_im.save(side_im_data, format='png')
side_im_data.seek(0)
side_out = ImageReader(side_im_data)
c.drawImage(side_out,200,700)
Run Code Online (Sandbox Code Playgroud)