在日常工作中,把网页、Markdown、HTML 等内容生成 PDF几乎是刚需:
技术文档要导出、合同要留档、报告要分享,但很多在线 PDF 平台都有同样的问题——次数限制、速度不稳定、隐私不可控。
BentoPDF 的定位非常清晰:
让你在自己的服务器上,搭建一个稳定、可控、随时可用的文档转 PDF 服务。
1. 项目介绍
BentoPDF 是一个开源的文档转 PDF 服务,核心能力是:
- 将网页 / HTML / 文档内容渲染为 PDF
- 提供 Web 服务接口,方便程序调用
- 可私有部署,数据不出服务器
- 适合作为“基础能力”长期运行
你可以把它理解为一个 “PDF 生成后端服务”,而不是一次性工具。
1.1 项目特点
🧱 私有部署,数据完全可控
BentoPDF 支持完整私有化部署,所有 PDF 生成过程都发生在你自己的服务器上:
- 文档内容不会上传到第三方平台
- 不存在次数限制或外部接口依赖
- 适合处理内部文档、合同、报告等敏感内容
对于对数据合规和隐私有要求的场景,这一点非常关键。
🔌 服务化设计,方便系统集成
BentoPDF 以 Web 服务 / API 的形式提供能力,而不是桌面工具:
- 后端系统可直接调用
- 前端可通过接口触发生成
- 支持自动化、批量生成流程
非常适合做成「导出 PDF」这一类通用功能模块。
📄 文档 / 页面渲染一致性高
BentoPDF 的 PDF 生成基于真实浏览器渲染:
- 页面样式与实际浏览效果高度一致
- 支持常见 CSS 布局和字体
- 对技术文档、网页报告尤其友好
相比简单模板拼接,渲染结果更稳定、可预期。
🐳 Docker 化部署,环境成本低
项目提供 Docker 部署方式:
- 不需要手动配置复杂运行环境
- 避免本地依赖差异问题
- 升级、迁移、回滚都很方便
对运维和开发来说,使用成本非常低。
⚙️ 适合长期运行的工具型项目
BentoPDF 本身不追求“功能大而全”,而是聚焦在一件事上:
稳定地把内容生成 PDF。
这种单一职责的设计,让它非常适合作为:
- 内部公共服务
- 系统基础组件
- 自动化流程的一环
1.2 项目展示




2.相关地址
gitHub开源项目:https://github.com/alam00000/bentopdf
3.搭建环境
- 服务器:这里为了方便搭建项目使用的是莱卡云的境外香港云服务器。(国内用户连接建议使用国内的服务器(需备案域名或者IP+端口)延迟会更低)
- 莱卡云服务器促销活动性价比会更高。查看官网购买链接:https://www.lcayun.com
- 资源配置:2核2G 30G硬盘
由于国内服务器访问海外源较慢,这边为了方便演示直接使用海外服务器搭建。 - 服务器系统:Debian-13
- 【必需】安装Docker:安装好 Docker、Docker-compose
- 【非必需】域名一枚,可用于解析到服务器上使用域名访问

4.搭建视频
哔哩哔哩:https://www.bilibili.com/video/BV19YzYBjEXc/
5.搭建方式
5.1 安装docker和docker-compose
安装教程:服务器上安装docker和docker-compose教程
5.2 创建docker文件
#在opt目录下创建BentoPDF文件夹
mkdir -p /opt/BentoPDF
#打开BentoPDF文件
cd /opt/BentoPDF
5.3 创建Docker Compose 配置
#编辑docker-compose.yml
vim docker-compose.yml
填入以下的配置文件
根据自己实际情况来设置
services:
bentopdf: # 服务名:bentopdf(docker compose 内部识别用)
image: bentopdf/bentopdf:latest # 使用 BentoPDF 官方镜像(latest 表示最新版本)
container_name: bentopdf # 容器名称固定为 bentopdf(方便 docker ps / logs 管理)
restart: always # 容器异常退出会自动重启;Docker 启动时也会自动拉起
ports:
- '8080:8080' # 端口映射:宿主机 8080 -> 容器 8080(外网/内网访问用)
environment:
- TZ=Asia/Shanghai # 容器内时区:上海(影响日志时间、定时任务时间等)
5.4 运行BentoPDF的docker镜像
我们先启动docker
# 启动docker
docker compose up -d
# 重启docker
docker compose stop
docker compose start
# 升级docker
docker compose down
docker compose pull
docker compose up -d

5.5 访问自己搭建的BentoPDF
浏览器访问
http://你的服务器IP:8080

底部可以修改语言

6.维护与更新
🔄 更新 BentoPDF
docker-compose pull
docker-compose up -d
无需改配置、不影响已有系统调用。
7.结语
通过 Docker 的方式部署后,BentoPDF 可以作为一项长期运行的基础服务存在:
不依赖第三方平台、不受次数限制,也不用担心文档内容外泄。对需要在系统中提供「导出 PDF」能力的场景来说,这种可控性本身就很有价值。








