通过 HttpResponse (PyPDF2) 在 Azure 函数中返回 PDF

工具小子

我创建了一个 Azure 函数,它将用户数据写入 pdf 的特定字段,并将该 pdf 作为对客户端的响应返回。但是,我总是收到 500 错误代码,即使直到最后一步的所有步骤似乎都可以正常工作,并且它也可以在本地运行而没有问题。

这是我的init.py

import logging

import azure.functions as func
from PyPDF2 import PdfFileReader, PdfFileWriter


def main(req: func.HttpRequest) -> func.HttpResponse:
    logging.info('----- Python HTTP trigger function processed a request. -----')

    BLOB_NAME = 'sheet.pdf'

    reader = PdfFileReader(BLOB_NAME)
    writer = PdfFileWriter()

    page = reader.pages[0]

    writer.addPage(page)

    sheetData = {}
    sheetData["Full Name"] = "Name"

    writer.updatePageFormFieldValues(writer.getPage(0), sheetData)

    return func.HttpResponse(writer, mimetype="application/pdf")

我可以返回类似的东西,str(writer.getPage(0))而不是writer所以我假设我的 requirements.txt 工作正常。只有在返回没有字符串类型主体的 HttpResponse 时才会失败。我认为添加正确的 mime 类型可以解决问题,但它返回相同的状态代码。在这一点上我有点不知所措。

罗兰史密斯

尝试创建一个字节对象来返回:

import io

pdf_bytes = io.BytesIO()

writer.write(pdf_bytes)
pdf_bytes.seek(0)

return func.HttpResponse(bdf_bytes.read(), mimetype="application/pdf")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章