前言
在前端开发中,经常需要将数据以 PDF 格式的文件进行保存和分享。本文将介绍如何使用 Express.js 库快速地生成并下载 PDF 文件。
准备工作
在开始正式代码编写之前,需要安装以下几个模块:
express
:一个处理 HTTP 请求的库。pdfmake
:一个快速生成 PDF 文件的库。
运行以下命令进行安装:
--- ------- ------- -------
编写代码
在创建 Express 应用的主文件 app.js
中,我们首先需要引入依赖的模块:
----- ------- - ------------------- ----- ------- - -------------------
接下来需要配置 pdfmake
,注意:在此期间需要进行中英文的映射。
----- ------- - --- --------- ----- - ------- - ------- --------------------------- ----- -------------------------- -------- -------------------------- ------------ ------------------------------- - -- ----- ------- ---
其中 font
属性用于设置字体,需要首先在项目中准备好字体文件,放置在 fonts
目录下,这里使用了 Roboto
字体。lang
属性用于指定语言为中文。
接下来,我们使用 express.Router()
创建一个路由器实例,并在其中编写生成 PDF 文件的代码。
----- ------ - ----------------- ---------------------------- ----- ---- -- - ----- ------------- - - -------- - - ----- ------- --- ---- --------- --- ----- ----- ---------- --------- ------- --- -- -- --- -- - ----- ---- -------- - --- ----------------------- -- - ----- ---- -------- - ----------------- -- -- -- ----- ------ - -------------------------------------------- ----------------------------- ------------------- ----------------- ------------- --- -------------- - -------
这里我们定义了一个 POST 请求 /generate-pdf
,其中形参 req.body.username
表示用户名,用于在 PDF 文件中展示。docDefinition
对象表示 PDF 文件的内容,包含了标题和相关信息。res.setHeader('Content-Type', 'application/pdf');
表示返回的文件类型为 PDF 格式,使用 res
对象将 PDF 文件返回给前端。
客户端代码
在 HTML 页面中设置一个表单,填写用户信息并点击按钮生成 PDF 文件。代码如下:
----- ---------------------- ------------- --------------------------- ------ ----------- --------------- --------------------- ------- ---------------- --- ----------- ------- -------- ----------------------------------------------------------------------- --- -- - ------------------- ----- ---- - --------- ----- --- - --- ----------------- ---------------- ------------ ------ ------------------------------------ -------------------- ---------------- - ------- ---------- - ---------- - --- --- - ------------------------------ --------------------- - ----- ----------------- ---- ----- - - ---------------------------- ------ - ---- ---------- - ----------- ----------------------------- ---------- ----------- -- ------------------------- --------- -------------------- ---- --- ---------
这里使用了 XHR 对象进行 POST 请求,并将请求的数据格式设置为 JSON 格式。在返回的 PDF 文件中,我们使用 Blob
对象将其转化为二进制数据类型,并将其通过创建一个 <a>
元素的 URL 属性使其可以被浏览器下载保存。
总结
使用 Express.js 和 pdfmake 库,可以快速地生成并下载 PDF 格式的文件,实现了数据的可视化和分享。本篇文章详细介绍了如何使用 PDFmake 库生成 PDF 文件并通过 Express.js 进行传输,同时也展示了如何在客户端进行下载。通过学习这些内容,希望读者可以在实际项目中实现 PDF 文件的生成和分享。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/659f0211add4f0e0ff7b77a4