我需要提供一个PDF到浏览器,它是从API返回的二进制文件。在
我使用的是python2.7、django1.5和requests
我按照Django docs中的建议安装了ReportLab。我还得到了以下示例:
response = HttpResponse(content_type="application/pdf")
response["Content-Disposition"] = "inline; filename=a_test_document.pdf"
p = canvas.Canvas(response)
p.drawString(100, 500, "Hello world")
p.showPage()
p.save()
return response
不过,这只允许我在自己的PDF上绘图。有没有办法把二进制文件转换成PDF格式?我查看了reportlab文档以及其他一些解决方案,但没有看到任何明确的东西。在
为了生成PDF,您可以使用xhtml2pdf库。
函数返回response object,只需传递模板名称、上下文数据和pdfname。在
以下是安装说明:https://pypi.python.org/pypi/xhtml2pdf/
看起来你正在尝试更新现有的PDF,而不是简单地创建一个新的。在这种情况下,this answer可能就是您要找的。总结一下他的解决方案:
另一方面,如果您不确定接收到的二进制文件的文件类型(在您的示例中不太可能,但值得一提),可以使用名为^{} 的东西。这是一个未经测试的潜在示例:
根据最终输出,您可以确定:
相关问题 更多 >
编程相关推荐