Skip to content

wxyhgk/retain-pdf

Repository files navigation

RetainPDF:PDF 保留排版翻译工具

RetainPDF

开源社区做保留排版的项目不少,但是都围绕可复制,可编辑的 PDF,以及行内公式不复杂的场景.

RetainPDF 从一开始就是要解决各类 PDF 的保留排版翻译问题,尤其是图片型/扫描版 PDF,以及行内公式的渲染问题.

在保留排版翻译这个领域,正面硬刚闭源模型,并且在一些场景下做得更好,比如翻译后的 PDF 体积、整体速度和字体大小控制。

此外本项目是前后端分离、OCR、翻译、排版与交付打通的全栈项目,整体结构尽量解耦,既能直接使用,也方便后续开发者继续扩展、替换模块和二次开发。

简单对比:

项目 扫描型 PDF 复杂行内公式 代码不误翻 表格控制 自定义翻译策略 排版保留 PDF 压缩优化 API 自动化
PDFMathTranslate 一般 一般
PolyglotPDF 一般 一般
Doc2X ❌ 不开放
RetainPDF ✅ 可开关 ✅ 可按规则配置 ✅ 持续优化

效果图

SCI 论文

SCI 示例 1

SCI 示例 2

图片型 / 扫描版 PDF

扫描版示例 1

扫描版示例 2

图书类

图书示例 1

图书示例 2

图书示例 3

快速开始

如果你只是想直接使用,先去 GitHub Releases 下载对应平台的发布包:

  • Windows:优先下载 Setup.exe
  • macOS:下载 .dmg
  • Linux:下载 .deb

如果你想给局域网、团队或多台设备一起用,优先选 Docker 部署。

Windows 桌面端

RetainPDF Windows 桌面端

macOS 提示

由于当前没有 Apple 开发者账号,macOS 版本第一次打开时可能会提示应用“已损坏”。这不是文件真的损坏,而是系统的签名校验导致的。把应用拖到 /Applications 后,执行:

sudo xattr -r -d com.apple.quarantine /Applications/RetainPDF.app

然后再重新打开应用即可。

Docker 部署

当前仓库提供了 Docker 交付目录:

基本步骤:

git clone https://github.com/wxyhgk/retain-pdf.git
cd retain-pdf/docker/delivery
docker compose up -d

启动后默认访问:

http://127.0.0.1:40001

默认端口:

  • 40001:前端页面
  • 41000:Rust API
  • 42000:简便同步接口

Docker 更新

如果只是更新到最新镜像版本:

cd retain-pdf/docker/delivery
docker compose pull
docker compose up -d

如果你要切换到指定镜像版本,也可以这样:

cd retain-pdf/docker/delivery
APP_IMAGE=wxyhgk/retainpdf-app:latest \
WEB_IMAGE=wxyhgk/retainpdf-web:latest \
docker compose up -d

更新后建议执行一次状态检查:

docker compose ps

当前镜像地址:

开发者

文档入口

建议按下面顺序阅读。

代码与子模块说明

当前目录结构

  • frontend/ 浏览器前端、桌面壳、预览实验页面。
  • backend/ Rust API、Python 脚本、嵌入式 Python、旧 FastAPI 包装层、历史工作区。
  • docker/ Dockerfile、发布脚本、交付用 compose 配置。
  • data/ 本地运行输出、任务目录、历史样本数据。

当前工程判断

RetainPDF 目前已经可以完成从 PDF 上传、OCR、翻译、排版重建到产物下载的完整链路。

接下来我的重点不是盲目堆功能,而是继续把下面几件事做稳:

  • 工程一致性
  • API 与产物契约稳定性
  • 构建可复现性
  • 长文块与公式场景下的翻译稳定性

如果你想了解我接下来准备怎么推进,可以看:

欢迎一起参与

如果你也对下面这些方向感兴趣,欢迎一起把这个项目继续往前做:

  • 高精度 OCR / 疑难版面解析
  • 长文块与公式场景下的翻译稳定性
  • 排版回填、字体自适应与 PDF 渲染
  • 桌面端、Docker 交付与工程化完善

不管你更擅长算法、前端、后端还是部署,只要你也想把“真正能用的 PDF 保留排版翻译”这件事做深,欢迎进来一起搞。

License

This project is distributed under the MIT License. See LICENSE for the full text.