高效PDF生成利器:Electron-PDF完整使用指南

【免费下载链接】electron-pdf 📄 A command line tool to generate PDF from URL, HTML or Markdown files. 【免费下载链接】electron-pdf 项目地址: https://gitcode.com/gh_mirrors/el/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,您可以轻松集成到各种工作流中,提高文档处理效率。

想要获取更多信息,可以查看项目源代码:lib/cli.js

【免费下载链接】electron-pdf 📄 A command line tool to generate PDF from URL, HTML or Markdown files. 【免费下载链接】electron-pdf 项目地址: https://gitcode.com/gh_mirrors/el/electron-pdf

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐