欢迎光临
我们一直在努力

BentoPDF 搭建教程:自建文档转 PDF 服务

在日常工作中,把网页、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」能力的场景来说,这种可控性本身就很有价值。

赞(0)
未经允许不得转载:莱卡云 » BentoPDF 搭建教程:自建文档转 PDF 服务