【问题标题】:pikepdf - how to return in memory pdf object from django viewpikepdf - 如何从 django 视图返回内存中的 pdf 对象
【发布时间】:2020-08-26 14:23:13
【问题描述】:

我目前有以下代码:

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 对象的地方。

【问题讨论】:

  • @ArakkalAbu 没有回答我的问题......我不知道为什么这个问题被否决了?使用 BytesIo 意味着一些非常狡猾的代码会加载 pdf,制作副本,然后克隆每个页面并附加到 bytesio pdf

标签: python django pdf pikepdf


【解决方案1】:

所以在查看 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-27
    • 2011-03-06
    • 2017-03-28
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 2019-09-12
    相关资源
    最近更新 更多