ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

BabelDOC:保留排版与公式的 PDF 翻译工具

BabelDOC:保留排版与公式的 PDF 翻译工具 BabelDOC保留排版与公式的 PDF 翻译工具【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOCBabelDOC 是一款 PDF 文档翻译工具主要面向英文到中文的学术论文场景。你输入一份英文 PDF它会输出一份单语翻译 PDF 和一份双语对照 PDF原文的字号、颜色、对齐方式和数学公式都保留在原位置翻译走任意 OpenAI 兼容模型命令行即可完成。从 PDF 到中间语言BabelDOC PDF 翻译的核心机制BabelDOC 的思路是解析、翻译、再绘制而不是在原 PDF 上直接改文字。整条链路如下解析用仓库内置的 pdfminer 分支和 PyMuPDF 读取 PDF把文本、字体、颜色、坐标抽取成一套结构化的中间语言IL。它类似文字处理器的 XML 描述每个段落记录以点pt为单位的坐标、字体族和颜色examples/ 目录下有 IL 样例可以直接查看。版面分析ONNX 版面模型把页面区域划分为正文、公式、图片、表格等。段落与样式段落识别把零散的文本行连成段落样式与公式处理步骤标记出公式区域和富文本样式。中间层翻译逐段调用 LLM。发送前把公式、富文本片段替换成占位符返回后再把占位符还原回原位公式不会被翻译破坏样式信息也不丢失。翻译并发由 QPS 控制默认每秒 4 次请求。排版与生成对每个段落重新排版、映射字体最后绘制出新的 PDF默认同时产出双语对照和单语两个版本。场景拆解论文、扫描版与大文档学术论文英译中公式与术语一致性--glossary-files glossary.csv术语表 CSV 包含source,target,tgt_lng三列tgt_lng可选填写后仅对匹配的目标语言生效翻译时系统检查文本段命中的术语并把对应术语表注入提示词。自动术语提取默认开启自动从文档中收集专有名词进提示词--no-auto-extract-glossary关闭--save-auto-extracted-glossary可把结果存成文件供下次复用。--pages 1,2,1-,-3,3-5页码范围语法1-表示从第 1 页到结尾-3表示到第 3 页。--translate-table-text翻译表格内文本实验性功能默认关闭。扫描版 PDF 的 OCR 参数适用前提纯白底、纯黑字的扫描件。--ocr-workaround译文下方垫白色矩形块盖住残留原文并把全部文字强制为黑色。--auto-enable-ocr-workaround先做扫描件检测仅当扫描件页超过 80% 时自动启用 OCR 路径并跳过重复检测。注意该参数开启后--ocr-workaround与--skip-scanned-detection的手动设置会以检测结果为准。--skip-scanned-detection确定不是扫描件时开启省去一次检测。大文档分片与多文件批量--max-pages-per-part按页数切分、逐段翻译后自动合并例如 200 页文档可设 50不设置则不切分。--files可重复指定多个文件--output/-o指定输出目录默认为当前目录。--no-dual、--no-mono控制跳过双语对照或单语 PDF默认两者都生成。动手实践安装并跑通第一个翻译任务用 uv 安装Python 3.12uv tool install --python 3.12 BabelDOC安装完成后得到babeldoc可执行命令。发起一次翻译替换模型地址与密钥babeldoc --openai --openai-model gpt-4o-mini \ --openai-base-url https://api.openai.com/v1 \ --openai-api-key your-api-key \ --files paper.pdf结束后当前目录生成双语对照 PDF 和单语 PDF译文默认带水印可用--watermark-output-mode no_watermark关闭或设both同时输出两种版本。也可以从源码运行git clone https://gitcode.com/GitHub_Trending/ba/BabelDOC cd BabelDOC uv run babeldoc --help第二条命令安装依赖并打印全部参数便于先确认选项再正式运行。调优速度、缓存与离线部署并发--qps默认 4--pool-max-workers默认跟随 QPS 值提高 API 限流额度时两者要同时调。缓存翻译结果存入本地缓存重跑同一文档直接命中换模型或提示词后想强制重译加--ignore-cache。最小翻译长度--min-text-length默认 5短于该长度的文本不发给模型减少无意义请求。兼容性问题先试--enhance-compatibility等价于--skip-clean --dual-translate-first --disable-rich-text-translate的组合注意跳过清理步骤会使输出文件变大。批量复用把参数写进 TOML 文件后用--config加载避免长命令。离线环境--warmup只下载并校验模型与字体后退出--generate-offline-assets把模型和字体打包成 zip目标机器用--restore-offline-assets恢复。调试--debug把详细中间结果导出到~/.cache/babeldoc/working。项目内部代码组织与模块职责BabelDOC 把流水线组织为前端、中端、后端三段放在document_il里版面分析与翻译则是独立模块babeldoc/format/pdf/document_il/前端构建中间语言中端做版面、段落、翻译、排版后端生成 PDF。babeldoc/docvision/版面分析模型的 ONNX 实现及 RPC 远程模式。babeldoc/translator/OpenAI 兼容翻译服务与翻译缓存。babeldoc/pdfminer/内置的 pdfminer 解析分支。docs/ImplementationDetails/八个阶段的实现原理文档官方说明见 README语言支持列表见 docs/supported_languages.md。常见问题翻译服务、页码指定与扫描版处理BabelDOC 支持哪些翻译服务能用本地模型吗只支持 OpenAI 兼容 API。用 Ollama 等本地服务时--openai-api-key填任意字符串即可README 推荐 OpenAI 兼容性好的模型如glm-4-flash、deepseek-chat。BabelDOC 怎么只翻译文档的某几页用--pages接受1,2,1-,-3,3-5这类组合配合--only-include-translated-page可让输出 PDF 只包含已翻译的页。BabelDOC 处理扫描版 PDF 用什么参数白底黑字的扫描件可开--ocr-workaround或加--auto-enable-ocr-workaround交给检测决定扫描件页超过 80% 时自动启用。翻译服务或提示词改了之后缓存不生效怎么办加--ignore-cache忽略本地翻译缓存强制重新请求模型。BabelDOC 除了中译英之外支持哪些语言目前主要优化英文到中文2025 年 3 月起支持以英文为目标语言主要用于避免词内断行。完整语言列表和连字支持情况见 docs/supported_languages.md完全依赖连字的语言暂不支持。当前版本主要优化英文到中文的学术文档路线图里表格支持、跨页跨栏段落连接和大纲生成仍是待办事项。【免费下载链接】BabelDOCYet Another Document Translator项目地址: https://gitcode.com/GitHub_Trending/ba/BabelDOC创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表