Django 生成PDF文件

在这里,我们将学习如何使用Django视图设计和生成PDF文件。我们将使用ReportLab Python PDF库生成PDF,该库可以创建定制的动态PDF文件。

这是一个开源库,可以通过在Ubuntu中使用以下命令轻松下载。

复制代码
$ pip install reportlab

Python

Copy

安装后,我们可以在视图文件中使用import关键字进行导入。

以下是一个简单的PDF示例,在其中我们输出一个字符串消息"Hello form javatpoint"。该库提供了一个画布和工具,用于生成定制的PDF。请参阅示例。

// views.py

复制代码
from reportlab.pdfgen import canvas
from django.http import HttpResponse

def getpdf(request):
    response = HttpResponse(content_type='application/pdf')
    response['Content-Disposition'] = 'attachment; filename="file.pdf"'
    p = canvas.Canvas(response)
    p.setFont("Times-Roman", 55)
    p.drawString(100,700, "Hello, Javatpoint.")
    p.showPage()
    p.save()
    return response

Python

Copy

首先,提供 MIME (内容) 类型作为 application/pdf,以便输出生成为 PDF 而不是 HTML,

设置 Content-Disposition,在其中提供附件和输出文件名的标题。

将响应参数传递给 canvas,并使用 drawstring 写入字符串,然后应用 save() 方法并返回响应。

// urls.py

复制代码
path('pdf',views.getpdf)

Python

Copy

将上面的代码设置在urls.py中调用视图函数。

运行服务器并在创建PDF文件的浏览器上访问此视图。请参见示例。

输出:

生成了一个PDF文件并准备好下载。下载文件并打开,它会显示我们写入的字符串消息。

此外,该库还包含了许多其他方法来动态设计和生成PDF。

相关推荐
SelectDB1 小时前
为什么 JSON 正在成为分析数据库新的竞争点?
数据库·json·agent
ClouGence2 小时前
开源数据库管理工具 CloudDM 4.2.0 发布,新增 GoldenDB、KingbaseES 等数据源
数据库·dba·devops
发霉的馒头2 小时前
ORA-00845: MEMORY_TARGET not supported on this system的解决方法
数据库
草莓熊Lotso5 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
煎饼皮皮侠6 小时前
【设计】设计一个web版的数据库管理平台后端(之五) --借鉴mybatis
数据库·mybatis
东风破_12 小时前
danci 2:创建的单词书到底存在哪里?从 Supabase 一路理解 ORM、Drizzle 和 RLS
数据库·后端·node.js
橙子家14 小时前
OSS 文件上传的几个风险点和解决方案
数据库
2601_9620664915 小时前
【Sql Server】Update中的From语句,以及常见更新操作方式
android·java·数据库
愤怒的苹果ext16 小时前
MySQL Shell备份恢复数据库
数据库·mysql·备份恢复·mysqlsh
数字新视界18 小时前
DCIM管理系统的技术架构与部署模式详解
数据库·物联网·数据中心·数据中心基础设施管理·dcim管理系统