简介
rabbit
是一款基于 Node.js 和 Puppeteer 的工具包,用于将网页转换为 PDF 或图片。它支持从网页截取所需区域,并可以自定义页边距、页眉页脚等样式。rabbit
支持命令行和 API 两种调用方式,是前端开发中一款非常实用的工具。
安装
使用 npm
安装 rabbit
:
--- ------- ------ ------
或者全局安装:
--- ------- -- ------
使用方法
命令行调用
命令行调用 rabbit
,需要先在命令行中输入 rabbit
,然后加上需要转换的网址和一些可选参数:
------ ------------------ ------ --- -------- ----------- --------- -----
其中,--type
指定输出类型,可以是 pdf
或 image
;--output
指定输出文件路径;--timeout
指定页面加载超时时间。
API 调用
使用 rabbit
的 API 调用,需要先导入 rabbit
模块:
----- ------ - ------------------
然后,可以调用 rabbit
的 generate
方法来生成 PDF 或图片:
----------------- -------- --------------------- ------- -------------- ----- ------ ------- - ---- ------ ----- ------ ------- ------ ------ ----- - ---------- -- - ---------------- --------- --------------- ---------------- -- - --------------------- ---
其中,generate
方法接受一个配置对象,包含属性:
pageUrl
(必须):要转换的网页的链接。output
(必须):输出文件的路径。type
:输出文件的类型,可以是pdf
或image
。margin
:页面的页边距,可以是一个数字表示所有边距相同,也可以是一个对象表示每个边距的不同值。headerTemplate
:自定义的页眉模板。footerTemplate
:自定义的页脚模板。waitUntil
:页面加载的事件,可以是load
、domcontentloaded
或networkidle0
。timeout
:页面加载的最长等待时间,单位是毫秒。
在生成 PDF 或图片之前,还可以使用 rabbbit
的 prepareBrowser
方法预加载浏览器:
------------------------------- -- - -------------------- -- -------- ---------------- -- - --------------------- ---
示例代码
----- ------ - ------------------ ------------------------------- -- - ------ ----------------- -------- --------------------- ------- ------------- ----- ------ ------- - ---- ------ ----- ------ ------- ------ ------ ----- -- --------------- ----- ----------------- ----- ----------- ----------------------- --------------- ----- ----------------- ----- ----------- ------------- ----- -------------------------- -- ----- ---------------------------------- ---------- --------------- -------- ----- --- ---------- -- - ---------------- --------- --------------- ---------------- -- - --------------------- ---
总结
本文介绍了如何使用 rabbit
将网页转换为 PDF 或图片。无论是命令行还是 API 调用,都是非常简单的操作。通过本文的学习,读者可以更好地了解如何使用 rabbit
快速生成自己需要的文档或图片。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/80971