# gotenberg-convert-docker-project **Repository Path**: aylerh/gotenberg-convert-docker-project ## Basic Information - **Project Name**: gotenberg-convert-docker-project - **Description**: other2pdf;gotenberg的前端调用;功能:网页url或文件转换为pdf;优点:(1)docker可模块化部署;(2)网页url可以转pdf,且文本可搜索,链接也可以点击,支持转换github.com的内容;(3)网页式文件url可直接转pdf; - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-18 - **Last Updated**: 2026-01-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 概览 这是一个基于 **Gotenberg**(后端)+ **Nginx**(反向代理)+ **Vue3**(前端)构建的**本地化高精度 PDF 转换方案**。 ## 支持转换类型 * 网址url; * 文件url; * 文件; ### 1. 核心功能 利用 **Chromium 浏览器引擎**进行渲染,完美解决了你最初提到的“Markdown/HTML 表格样式乱、渲染效果差”的痛点。 * **URL 转 PDF**:输入网址(如百度、GitHub),直接将其打印为 PDF。 * **HTML 转 PDF**:上传 `.html` 文件,支持 CSS 样式,还原度极高。 * **Markdown 转 PDF**:上传 `.md` 文件,自动套用预设 CSS 样式,**表格、代码块渲染效果极佳**(所见即所得)。 ### 2. 系统架构 * **后端 (Port 3000)**:`gotenberg/gotenberg:8`。无状态 API 服务,负责调用 Chrome 内核转换。 * **中转/前端 (Port 8080)**:`nginx:alpine`。 1. 托管你的 HTML 页面。 2. **反向代理** API 请求,**彻底解决 CORS 跨域报错**。 ## 页面样式 文件转pdf: ![文件转pdf](images/1.png) url转pdf: ![url转pdf](images/2.png) # 部署 ``` 先配置环境变量.env中: 此项目中的BACKEND_PORT_INNER_DOCKER=3000不可修改;因为是gotenberg镜像里面设定好的; ``` 注意: ## 正式部署-docker compose ## 仅启动-不重新构建镜像(都使用的官方镜像) 注:(html附加到了nginx) #### **第一步:启动服务** 在包含 `docker-compose.yml` 和 `nginx.conf` 的目录下运行终端: ```bash docker-compose up -d ``` #### **第二步:访问页面** 打开浏览器访问:**`http://localhost:8080`** #### **第三步:配置 API 地址(不修改port不用填写)** #### **第四步:开始转换** 1. 选择标签页(URL / HTML / Markdown)。[注意url是指网页链接地址] 2. 输入链接或上传文件。 3. 点击 **"开始转换"**。 4. 右侧会自动预览 PDF,点击链接即可下载。 # 另一种启动方式-单独html启动(启动后端服务后运行) 1)单独启动:goteberg的后端服务: ``` git clone https://gitee.com/aylerh/gotenberg-convert-docker-project docker compose up -d gotenberg ``` 2)打开single_html\gote-convert2pdf.html,配置goteberg的后端服务ip:port 注意: ``` 在请求失败的诊断区域增加了针对 CORS(跨域)和 Failed to fetch 错误的专项提示;明确指导用户安装并开启插件“Allow CORS: Access-Control-Allow-Origin” ```