【问题标题】:HTML to PDF creation in AWS Lambda using Python使用 Python 在 AWS Lambda 中创建 HTML 到 PDF
【发布时间】:2019-08-09 10:09:45
【问题描述】:

我正在尝试使用 python 创建一个包含图像、来自 AWS lambda 中的 HTML 数据的表格的 pdf 文件。我在谷歌上搜索了很多,我没有找到任何超酷的解决方案。我在本地尝试了一些库(FPDF、pdfKit),但它在 AWS 上不起作用。是否有任何简单的工具可以创建 pdf 并将其上传到 S3 存储桶。提前致谢。

【问题讨论】:

    标签: python-3.x amazon-s3 aws-lambda aws-appsync html-to-pdf


    【解决方案1】:

    您可以使用reportlab PDF python 模块。这对你所要求的所有事情都有好处。您可以添加图像、创建表格等。还有很多可用的样式选项。你可以在这里找到更多信息:https://www.reportlab.com/docs/reportlab-userguide.pdf

    我在我的生产中使用它,并且非常适合我必须创建发票的用例。您可以在 /tmp 目录中创建发票,然后将其上传到 S3

    【讨论】:

    • 在哪里可以设置路径?如果您不介意,请提供更多详细信息。
    • 看不到 /tmp 目录。它只是在 lambda 运行时可用的临时存储。可以使用它来存储可能在 lambda 执行期间创建的临时文件。您可以在这里找到更多信息:docs.aws.amazon.com/lambda/latest/dg/limits.html 如果您需要进一步的帮助,请告诉我 :)
    • 我与 s3_object.put_object() 混淆了。我需要传递密钥和正文的值是多少? c = canvas.Canvas(sFilePath) c.drawString(100, 100, "测试工作!") c.showPage() c.save() s3_object.put_objefct(key=filepath, body=?)
    • 'Key' 基本上是您尝试在 S3 存储桶中创建的文件的文件名。例如:temp.pdf。现在对于“正文”,如果您使用的是 client.put_object() 方法,则需要实际传递文件的内容。我建议您首先使用 /tmp 目录在 lambda env 中创建一个临时文件,将其命名为 temp_file.pdf,然后使用 client.upload_file() 方法将此 temp_file.pdf 上传到 S3。您可以在此处找到有关 upload_file 方法的更多信息:boto3.amazonaws.com/v1/documentation/api/latest/reference/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 2016-05-04
    • 2020-07-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    相关资源
    最近更新 更多