使用 wkhtmltopdf-nodejs-ws-server 快速生成 PDF 文档

阅读时长 5 分钟读完

在前端开发过程中,我们经常需要生成 PDF 文档以满足业务需要。但是,直接使用传统的 PDF 生成工具可能会遇到一些问题,如跨平台兼容性、性能等。因此,我们推荐使用 wkhtmltopdf-nodejs-ws-server 这个 npm 包来快速生成 PDF 文档。

什么是 wkhtmltopdf-nodejs-ws-server?

wkhtmltopdf-nodejs-ws-server 是一个基于 Node.js 的 npm 包,它通过一个 HTTP 服务器的方式,将 wkhtmltopdf 这个开源工具的功能封装成了一个 web 服务,可以快速地将 HTML 转换为 PDF 文档。

安装

首先,我们需要安装 wkhtmltopdf 工具,可以在官方网站 https://wkhtmltopdf.org/downloads.html 下载对应平台的安装包。然后执行以下命令来安装 wkhtmltopdf-nodejs-ws-server:

npm install wkhtmltopdf-nodejs-ws-server --save

使用示例

接下来,我们将通过一个简单的示例来演示如何使用 wkhtmltopdf-nodejs-ws-server。

服务端代码

首先,我们需要在服务端创建一个 HTTP 服务器,并使用 wkhtmltopdf-nodejs-ws-server 来处理 PDF 文件的生成请求。以下是示例代码:

-- -------------------- ---- -------
----- --- - ----------------------------------------
----- ---- - ----------------

-- -- ---- ---
----- ------ - --------------------

-- ----
-------------------- ----- ---- -- -
  -- -- ---- ---------
  -------------------------------------------- -----
  --------------------------------------------- ------ ---- ----------
  --------------------------------------------- ----------------

  -- -- ---- --
  -- ----------- --- ------- -
    --- ---- - ---
    
    -- -----
    -------------- ----- -- -
      ---- -- ------
    ---

    ------------- -- -- -
      -- -- ----------- -- ---- - ---
      --------- ----- ---- -- -
        -- ----- -
          -------------------
          -------------- - ----
          ----------
          -------
        -

        -- -- ------------ --
        ----------------------------- -------------------
        
        -- -- --- --
        -------------
      ---
    ---
  -
---

-- -----
------------------- ------------ -- -- -
  ------------------- -- ------- -- ------------------------
---

以上代码创建了一个 HTTP 服务器并监听 3000 端口,接收 POST 请求,将请求体转换为 PDF 文档,并返回生成的 PDF 文件。

客户端代码

接下来,我们需要在客户端发送一个 POST 请求,将需要转换的 HTML 代码发送给服务端。以下是示例代码:

-- -------------------- ---- -------
----- ---- - ---------------------- ---------------------------

-- -- ---- --
------------------------------ -
  ------- -------
  -------- -
    --------------- -----------
  --
  ----- ----
----------- -- -
  -- -- --- --
  ----------------------------- -- -
    ----- ---- - --- -------------- - ----- ----------------- ---
    ----- --- - --------------------------
    
    -- -- --- --
    ----- ---- - ----------------------------
    --------- - ----
    ------------- - -----------
    -------------
  ---
---

以上代码发送一个 POST 请求,将 HTML 代码发送给服务端,并通过 Blob 对象生成 PDF 文件,并下载到本地。

总结

通过使用 wkhtmltopdf-nodejs-ws-server 这个 npm 包,我们可以快速地将 HTML 转换为 PDF 文档,不仅可以提高性能,还可以跨平台兼容。希望本文对您有所帮助。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6006710e8dd3466f61ffe1e9

纠错
反馈