html生成pdf文件
说明
后台功能需要打印一些审批表单,找来找去找到了强大的wkhtmltopdf,wkhtmltopdf在npm中介绍但很详细,如果没有特殊要求使用起来也没什么难度。但在使用过程中犯了一个很蠢但问题,所以记录下来。
如何使用
- 安装wkhtmltopdf命令行工具。下载地址
- 安装模块
npm install wkhtmltopdf
- 代码中使用
const wkhtmltopdf = require('wkhtmltopdf');
//HTML
wkhtmltopdf('<h1>测试</ h1> <p> Hello world </ p>')
.pipe(fs.createWriteStream('out.pdf'))
//网址输出到文件
wkhtmltopdf('http://apple.com/',{output:'out.pdf'});
//随便抄了两个栗子 也不多废话了
遇到但问题 - - 很蠢
因为自己忽略了第一步,总是报如下但错误
Error: /bin/sh: wkhtmltopdf: command not found
我总是以为是我npm install wkhtmltopdf失败了
虽然很蠢 - - 但是记录下来长个记性。。以后要认真读文档
记录一下…更换模块了不用这个了
偶尔会遇见生成pdf文件已损坏的情况,但又找不到原因,找了很久真的无能为力了…最终决定更换使用puppeteer
先简单记录一下如何使用:
const puppeteer = require('puppeteer');
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('https://www.example.com');
await page.screenshot({path: 'example.png'});
await page.pdf({path: 'example.pdf', format: 'A4'});
await browser.close();