使用Python在AWSLambda内的ReportLab中创建带有图像的PDF

2024-09-27 00:13:27 发布

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

我成功地编写了一个python脚本,它创建了我想要的PDF。PDF里面有几张图片。 在我的本地环境中,当ReportLab从我的桌面抓取图像时,一切正常。 现在我想把脚本转移到AWS Lambda,这让我发疯。 ReportLab和枕头是AWS Lambda的图层。与pip3一起安装的最新版本。
我从S3下载图像,并将其从Lambda保存到localSpace,如下所示:

local_name = '/tmp/'
logoImage = local_name+'logo.png'

def downloadLogo():
    logoPath = 'QRData/logo.png'
    try:
       s3.Bucket(bucketName).download_file(logoPath, logoImage)
    except ClientError as e:
       print(e)
       if e.response['Error']['Code'] == "404":
           print("The object does not exist.")
       else:
           raise
       return False
    return True

成功下载图像后,ReportLab抛出了一个错误,当我想从localSpace绘制图像时。你知道吗

def setLogo(c):
    c.drawImage(logoImage, x, y, width=400/4, height=171/4)

错误消息:

JPEG Unsupported JPEG marker: ce
Imaging Library not available, unable to import bitmaps only jpegs
fileName=<_io.BufferedReader name='/tmp/logo.png'> identity=[ImageReader@0x7f0a0dd34280 filename='/tmp/logo.png']
fileName=<_io.BufferedReader name='/tmp/logo.png'> identity=[ImageReader@0x7f0a0dd34280 filename='/tmp/logo.png']

为什么ReportLab可以在本地获取我的图像,而不是在Lambda中,我如何解决这个错误?你知道吗


Tags: lambdaname图像脚本awspdfpnglocal

热门问题