HTML/URL转PDF全能工具-跨平台一键部署解决方案
下载地址
https://gitee.com/shang000629/document-conver-releases/releases
申请链接
https://vercel.server.driedrice.top/doc-convert/email_apply?email=填写你的邮箱地址
基于Node.js + Puppeteer构建的智能PDF转换工具,支持:
- HTML文件转PDF
- 网页URL转PDF
- ✏️ 原始字符串转PDF
- ️ 自定义页面尺寸/页眉页脚/打印样式
核心优势:
多环境支持:
- Windows免编译(解压即用exe)
- Linux便携版(需google-chrome)
- Docker容器化部署(docker-compose一键启动)
技术亮点:
- 基于Chrome内核精准渲染(Puppeteer)
- 单文件二进制打包(pkg技术)
- 支持Headless无界面模式
- 低内存占用高性能转换
使用场景:
- 自动化报告生成
- 网页内容存档
- 合同/协议标准化输出
- 动态内容PDF化处理
环境要求:
- Windows系统需安装Chrome浏览器(v89+)
- Linux系统需安装google-chrome
- Docker版自动处理依赖
提供开箱即用的CLI工具和API接口,轻松集成到现有工作流!
config.yml 说明
申请链接
https://vercel.server.driedrice.top/doc-convert/email_apply?email=填写你的邮箱地址
接口响应成功后,会发送appid到填写的邮箱地址
# 邮箱 更改你申请的邮箱地址
email: [email protected]
# appid 更改为你申请的appid
appid: example-appid
# windows chrome安装路径 ex: C:\Program Files\Google\Chrome\Application\\chrome.exe
windowsChromePath: C:\Program Files\Google\Chrome\Application\\chrome.exe
# linux google-chrome安装路径 ex: /usr/bin/google-chrome
linuxChromePath: /usr/bin/google-chrome
# 使用generic-pool创建的puppeteer的浏览器池配置
puppeteerBrowserPool:
# 默认10 最大浏览器实例数
max: 10
# 默认1 最小浏览器实例数
min: 1
# 默认512 每一个浏览器实例 最大可重用次数,超过后将重启实例。0表示不检验
maxUses: 512
# 默认true 初始化时初始化实例
autostart: true
# 默认1800000 指定资源在连接池中保持空闲状态的最大时间(单位:毫秒)。如果资源在池中空闲的时间超过此值,它将被销毁并从池中移除。
idleTimeoutMillis: 1800000
# 默认300000 指定驱逐线程运行的时间间隔(单位:毫秒)。驱逐线程会定期检查池中资源,销毁空闲时间超过 idleTimeoutMillis 的资源。
evictionRunIntervalMillis: 300000
1、在docker中使用
docker目录,修改config.yml中的appid和email为你的appid和email
直接运行以下命令
docker-compose up -d
2、在windows系统中使用
需要安装谷歌浏览器并正确配置config.yml中的windowsChromePath
windows目录,修改config.yml中的appid和email为你的appid和email,直接运行exe文件即可
3、在linux系统中使用
需要安装google-chrome并正确配置config.yml中的linuxChromePath
linux目录,修改config.yml中的appid和email为你的appid和email, chmod +x document-conver.linux, 然后直接运行即可
接口文档
1、html文件转pdf
请求方式: POST
请求地址: /html_file_to_pdf
参数说明:
使用multipart/form-data POST上传文件, 文件标识名为"file"
url参数中支持以下参数
2、html字符串转pdf
请求方式: POST
请求地址: /html_str_to_pdf
参数说明:
请求body中发送json
参数 | 是否必须 | 说明 |
---|---|---|
html | 是 | html字符串 |
pdfOptions | 否 | 查看 |
请求示例:
{
"html": "html文本转pdf
",
"pdfOptions": {
"displayHeaderFooter": false,
"format": "A4",
"printBackground": true,
"preferCSSPageSize": true,
"margin": {
"top": "10mm",
"bottom": "10mm",
"left": "10mm",
"right": "10mm"
}
}
}
3、html网页url转pdf
请求方式: POST
请求地址: /html_str_to_pdf
参数说明:
请求body中发送json
参数 | 是否必须 | 说明 |
---|---|---|
url | 是 | 有效http网页链接 |
cachePage | 否 | 是否使用浏览器缓存,默认使用 |
pdfOptions | 否 | 查看 |
请求示例:
{
"url": "https://www.baidu.com/",
"cachePage": true,
"pdfOptions": {
"displayHeaderFooter": false,
"format": "A4",
"printBackground": true,
"preferCSSPageSize": true,
"margin": {
"top": "10mm",
"bottom": "10mm",
"left": "10mm",
"right": "10mm"
}
}
}