高效PDF生成利器:Electron-PDF完整使用指南
Electron-PDF是一款基于Electron构建的强大命令行工具,能够从URL、HTML或Markdown文件生成高质量PDF文档。无论是开发者需要批量转换文档,还是普通用户希望将网页内容保存为PDF,这款工具都能提供简单高效的解决方案。## 🚀 快速开始:安装步骤要开始使用Electron-PDF,首先需要通过npm进行安装。对于大多数用户,只需在终端中运行以下命令:```b
高效PDF生成利器:Electron-PDF完整使用指南
Electron-PDF是一款基于Electron构建的强大命令行工具,能够从URL、HTML或Markdown文件生成高质量PDF文档。无论是开发者需要批量转换文档,还是普通用户希望将网页内容保存为PDF,这款工具都能提供简单高效的解决方案。
🚀 快速开始:安装步骤
要开始使用Electron-PDF,首先需要通过npm进行安装。对于大多数用户,只需在终端中运行以下命令:
npm install electron-pdf
如果需要全局安装(适用于系统级npm),请使用:
sudo npm install electron-pdf -g --unsafe-perm
对于无图形界面的GNU/Linux系统,还需要安装xvfb并配置虚拟显示:
sudo apt-get install xvfb
export DISPLAY=':99.0'
Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
💻 命令行基础用法
Electron-PDF提供了直观的命令行接口,支持多种源文件类型转换:
从HTML文件生成PDF
electron-pdf index.html ~/Desktop/index.pdf
从Markdown文件生成PDF
electron-pdf index.md ~/Desktop/index.pdf
从URL生成PDF
electron-pdf https://fraserxu.me ~/Desktop/fraserxu.pdf
带自定义CSS的Markdown转换
electron-pdf index.md ~/Desktop/index.pdf -c custom-style.css
⚙️ 高级渲染选项
Electron-PDF提供了丰富的参数来自定义PDF输出:
页面设置
-l或--landscape: 设置横向打印-p A3或--pageSize A3: 指定纸张大小(A3/A4/A5/Letter等)-m 1或--marginsType 1: 设置无边距(默认值)
示例:生成横向A3尺寸PDF
electron-pdf input.html output.pdf -l -p A3
等待页面加载完成
当处理包含异步内容的页面时,可使用-e参数等待特定事件:
electron-pdf dynamic-content.html output.pdf -e
在HTML中需添加事件触发代码:
document.body.dispatchEvent(new Event('view-ready'))
浏览器配置
通过--browserConfig参数自定义Electron浏览器窗口:
electron-pdf input.html output.pdf --browserConfig '{"show":true}'
此命令会在生成PDF时显示浏览器窗口,便于调试。
🛠️ 所有可用选项
Electron-PDF提供了全面的配置选项,以下是主要参数概览:
| 参数 | 描述 | 默认值 |
|---|---|---|
-i, --input |
输入文件路径或URL | 必需 |
-o, --output |
输出PDF路径 | 必需 |
-b, --printBackground |
是否打印CSS背景 | false |
-c, --css |
自定义CSS文件路径 | - |
-d, --disableCache |
禁用HTTP缓存 | false |
-e, --waitForJSEvent |
等待JS事件触发 | 'view-ready' |
-m, --marginsType |
边距类型 (0-默认,1-无边距,2-最小) | 1 |
-p, --pageSize |
纸张尺寸 | "A4" |
-w, --outputWait |
页面加载后等待时间(ms) | - |
完整参数列表可通过electron-pdf --help命令查看。
📚 Node.js集成使用
Electron-PDF也可作为Node.js模块集成到应用中:
const ElectronPDF = require('electron-pdf')
const exporter = new ElectronPDF()
exporter.start()
exporter.on('charged', () => {
// 创建PDF导出任务
exporter.createJob('input.html', 'output.pdf', {pageSize: 'A4'})
.then(job => {
job.on('job-complete', result => {
console.log('PDF生成完成:', result.results)
})
job.render()
})
})
🔧 故障排除与调试
遇到问题时,可通过设置DEBUG环境变量查看详细日志:
DEBUG=electron* electron-pdf input.html output.pdf
对于证书相关问题,可使用--ignoreCertificateErrors参数(注意安全风险):
electron-pdf https://self-signed-site.com output.pdf --ignoreCertificateErrors
📄 其他导出格式
除PDF外,Electron-PDF还支持导出为HTML和PNG格式:
# 导出为HTML
electron-pdf input.md output.html
# 导出为PNG图片
electron-pdf input.html output.png
📋 总结
Electron-PDF凭借Electron的强大能力,提供了跨平台的PDF生成解决方案。无论是简单的文件转换还是复杂的自动化文档生成,它都能满足您的需求。通过灵活的命令行参数和Node.js API,您可以轻松集成到各种工作流中,提高文档处理效率。
更多推荐
所有评论(0)