pikepdf-如何从django视图返回内存中的pdf对象

问题描述

我目前有以下代码

pdf = Pdf.open(f"cover.pdf")
page = pdf.pages[0]
for i,a in enumerate(page.Annots):
    print(a.T)
    a.V = str(i)

pdf.save("output_test.pdf")

在网上找不到任何地方描述如何从django视图返回内存中pdf对象。

解决方法

因此,在查看了pikepdf源代码之后,save()接受了一个二进制流。所以以下对我有用:

in_mem = BytesIO()
self.new_pdf.save(in_mem)

response = HttpResponse(in_mem.getvalue(),content_type=get_content_type("pdf"),)
response["Content-Disposition"] = getStringContentDisposition("test.pdf",True)
return response