NuoYi 挪移-一个离线的 PDF/DOCX 转 Markdown 工具

为什么需要这个工具

搞科研、写文档的人大概都经历过这样的场景:手头一堆 PDF 论文或者 Word 文档,需要把里面的内容搬到 Markdown 里去——可能是为了写综述、整理笔记,也可能只是想把内容放到 Obsidian 或 Notion 里方便检索。

复制粘贴当然可以,但碰上扫描件、双栏排版、公式、表格、中英文混排,效果就一言难尽了。你还得手动处理图片、修复格式,遇到上百页的文档更是噩梦。

市面上也有一些在线转换工具,但把未发表的论文、内部报告传到别人服务器上,总归不太放心。

NuoYi(挪移)就是为了解决这个问题而写的。它基于 marker-pdf 和 surya OCR 引擎,首次运行下载模型之后,所有转换都在本地完成,完全不联网。支持 PDF 和 DOCX 两种格式,能自动提取图片、识别版面布局、处理多语言文档。有命令行、有图形界面。

适用场景

  • 论文整理:把 PDF 论文批量转成 Markdown,方便在笔记工具中管理
  • 文档迁移:将 Word 文档转为 Markdown 格式,用于 Git 仓库或静态网站
  • 扫描件识别:支持 OCR,扫描件也能转
  • 多语言文档:支持中、英、日、法、俄、德、西、葡、意、韩 10 种语言的混合识别
  • 批量处理:整个目录一键转换,省时省力
  • 离线使用:模型下载完成后无需联网,适合网络受限或对隐私敏感的环境

安装

环境准备

NuoYi 需要 Python 3.11 及以上版本。建议使用 conda 创建独立环境,避免依赖冲突:

conda create -n nuoyi python=3.12
conda activate nuoyi

安装 NuoYi

最简单的方式是从 PyPI 安装:

pip install nuoyi

如果需要图形界面,安装带 GUI 支持的版本:

pip install nuoyi[gui]

也可以从源码安装(适合开发或尝鲜最新代码):

git clone https://github.com/cycleuser/NuoYi.git
cd NuoYi
pip install -e .

模型下载

首次运行时,NuoYi 会自动从 Hugging Face 下载 surya 系列模型(版面检测、文字识别、阅读顺序等),总大小约 2-3 GB,存放在 ~/.cache/huggingface/hub/ 目录下。

大陆地区加速访问:如果下载速度较慢或连接不稳定,可以设置镜像来加速模型下载:

# 设置镜像(添加到 ~/.bashrc 可永久生效)
export HF_ENDPOINT=https://hf-mirror.com

# 然后正常运行 NuoYi 即可
nuoyi paper.pdf

模型下载完成后,后续使用完全不需要联网。

GPU 加速(可选)

NuoYi 默认自动检测 GPU。如果你的机器有 NVIDIA 显卡且显存 6GB 以上,会自动使用 GPU 加速转换,速度会快很多。显存不足时会自动切换到 CPU,不需要额外配置。

如果遇到 CUDA 显存不足的错误,也可以手动指定 CPU 模式:

nuoyi paper.pdf --device cpu

Apple Silicon Mac 用户可以使用 MPS 加速:

nuoyi paper.pdf --device mps

使用方法

命令行

# 转换单个 PDF
nuoyi paper.pdf

# 指定输出路径
nuoyi paper.pdf -o output/result.md

# 转换 Word 文档
nuoyi document.docx -o document.md

# 批量转换整个目录
nuoyi ./papers --batch

# 批量转换并指定输出目录
nuoyi ./papers --batch -o ./output

# 强制 OCR(扫描件或需要重新识别时使用)
nuoyi paper.pdf --force-ocr

# 只转换部分页面
nuoyi paper.pdf --page-range "0-5,10,15-20"

# 指定语言(提高特定语种识别准确率)
nuoyi paper.pdf --langs "zh,en,ja"

# 查看支持的语言列表
nuoyi --list-langs

图形界面

如果不习惯命令行,NuoYi 也提供了基于 PySide6 的图形界面:

nuoyi --gui

图形界面的操作流程很直观:选择输入目录和输出目录,勾选需要识别的语言,配置设备选项,点击开始转换即可。转换过程中有实时的进度条和日志输出。

启动界面

Image

启动界面

选择输入目录

Image

选择路径

配置设备和语言选项

Image

选择模型

转换结果(在 VS Code 中查看)

Image

结果

支持的语言

NuoYi 支持以下 10 种语言的识别,可以自由组合:

代码 语言
zh 中文
en 英语
ja 日语
fr 法语
ru 俄语
de 德语
es 西班牙语
pt 葡萄牙语
it 意大利语
ko 韩语

默认使用 zh,en(中英文混合),可以通过 --langs 参数或图形界面中的复选框来选择。

命令行参数速查

参数 说明
input 输入文件或目录
-o, --output 输出路径
--force-ocr 强制 OCR
--page-range 页面范围,如 0-5,10,15-20
--langs 语言列表,如 zh,en,ja
--list-langs 列出所有支持的语言
--batch 批量处理目录
--device 推理设备:auto / cpu / cuda / mps
--gui 启动图形界面
-V, --version 显示版本号

注意事项

  • 模型下载完成后,所有功能均可离线使用
  • 不支持旧版 .doc 格式,请先用 Word 或 LibreOffice 转为 .docx
  • 转换效果取决于 PDF 本身的质量,扫描件建议开启 --force-ocr
  • 大文件转换可能需要较多内存,建议关闭其他占用显存的程序

项目地址

GitHub:https://github.com/cycleuser/NuoYi

欢迎 Star、提 Issue 或 PR。

开源协议:GPL-3.0

预览时标签不可点

Close

更多

Name cleared

微信扫一扫赞赏作者

Like the AuthorOther Amount

赞赏后展示我的头像

作品

暂无作品

Like the Author

Other Amount

¥

最低赞赏 ¥0

OK

Back

Other Amount

更多

赞赏金额

¥

最低赞赏 ¥0

1

2

3

4

5

6

7

8

9

0

.

虚拟化,操作系统,以及一些小工具 · 目录

虚拟化,操作系统,以及一些小工具

上一篇虚拟机黑苹果项目 OSX-KVM 简单解析:如何在 KVM 上运行 macOS下一篇Chou(瞅)——一个Python小工具,让你的论文PDF文件名不再是乱码

Close

更多

搜索「」网络结果

Close

调整当前正文文字大小

更多

100%