npm 包 wkhtmltox-montserrat 使用教程

阅读时长 6 分钟读完

简述

wkhtmltopdf 是一款开源、跨平台的 HTML 转 PDF 工具,支持各种 HTML 元素和 CSS 样式,可以生成高质量的 PDF 文档。对于那些需要将网页内容转换为 PDF 文档的前端开发者或者其他领域的开发者来说,wkhtmltopdf 是一个非常强大实用的工具。

但是,wkhtmltopdf 的安装和使用却并不是很方便。在 Windows 平台上尤其如此,需要安装额外的依赖库和配置环境变量等操作。适应不同系统和版本的 wkhtmltopdf 编译版本也不是很容易。幸运的是,现在有一个 npm 包 wkhtmltox-montserrat,它包含了预编译好的 wkhtmltopdf 库文件和字体文件,可以直接在 Node.js 环境中使用。

本文将介绍如何使用 npm 包 wkhtmltox-montserrat,在前端项目中使用 wkhtmltopdf,以及一些常见问题的解决方案。

安装

安装 wkhtmltox-montserrat 只需在项目目录中运行以下命令:

此时,会在项目中自动安装预编译好的 wkhtmltopdf 库文件和字体文件。

如果由于墙的原因安装不了,可以考虑使用 cnpm 或者使用淘宝源。

使用

下载和安装了 wkhtmltox-montserrat 后,我们就可以在前端项目中使用 wkhtmltopdf 工具,生成 PDF 文档了。首先,我们需要引入 wkhtmltopdf 模块:

接着,我们可以使用以下方法调用 wkhtmltopdf:

其中,source 参数可以是本地 HTML 文件、URL、已经渲染好的 HTML 字符串,也可以是一个可读流对象。而 destination 则可以是本地文件路径、可写流对象,或者可以返回可写流的函数。

下面是一个使用示例,将本地的 index.html 文件转为 PDF 文档并保存到本地的 output.pdf 文件中:

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

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

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

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

通过命令行运行 node index.js 即可看到生成的 output.pdf 文件。如果在浏览器中打开该文件,会看到一个包含 index.html 的页面的 PDF 版本。

选项

在调用 wkhtmltopdf 方法时,可以通过 options 参数指定一些选项,包括但不限于以下内容:

  • pageSize: 页面大小和方向,默认为 A4 纸和纵向,可以设置为宽高,例如 {width: '210mm', height: '297mm', orientation: 'landscape'}
  • encoding: 编码格式,默认为 UTF-8。
  • headerfooter: 头部和底部,可以是 HTML 内容,也可以是包含 HTML 内容的本地文件路径或 URL。
  • margin: 页边距,可以为 '10mm'{top: '10mm', bottom: '20mm'} 等格式。

详细的选项可以参考 wkhtmltopdf 官方文档

以下是一个设置选项的示例:

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

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

常见问题及解决方案

1. 在 Windows 平台上执行 wkhtmltopdf 报错

在 Windows 平台上,有时会出现类似下面的错误提示:

这是因为没有正确设置环境变量的缘故。正确的做法是在系统环境变量的 PATH 中添加 wkhtmltopdf 的安装路径。例如,在我的 Windows 10 系统中,wkhtmltopdf 的安装路径为 C:\Program Files\wkhtmltopdf\bin,则需要将 C:\Program Files\wkhtmltopdf\bin 添加到系统环境变量的 PATH 提示。

如果还是无法解决问题,可以尝试在代码中直接指定 wkhtmltopdf 程序的路径。例如:

2. 中文乱码问题

在使用 wkhtmltopdf 生成 PDF 时,在默认情况下可能会出现中文乱码的问题。有两种解决方案:

  • 明确指定 HTML 中文本的编码格式,例如:<meta charset="utf-8">
  • 指定输出 PDF 文件的编码格式,例如:options.encoding = 'utf-8';

3. @import 无法加载 CSS 文件问题

在 HTML 文件中使用 @import 导入 CSS 文件时,可能会出现 CSS 文件无法加载的问题。这是因为 wkhtmltopdf 只能加载 HTML 中直接引用的 CSS 文件,而不能解析引用页面嵌套的 CSS 文件。一个解决方案是将 CSS 文件都合并到一个文件中,然后在 HTML 文件中直接引用这个文件。

总结

本文介绍了如何通过 npm 包 wkhtmltox-montserrat 在前端项目中使用 wkhtmltopdf 工具,以及常见的问题解决方案。尽管使用这个工具有一些限制和需要注意的地方,但是它仍然是生成高质量 PDF 文档的一种强大工具,对于那些需要将网页内容转化为 PDF 文档的开发者来说,是非常实用的。

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

纠错
反馈