本地 PDF 转 Markdown 操作手册

适用于,公司电脑和无管理员权限的操作办法,可以实现VSCODE转PDF为markdown;

1. 核心工具与安装
  • 推荐工具pdfplumber(纯 Python 库,无需外部命令,兼容性极佳)。

  • 正确安装命令

    python -m pip install pdfplumber --no-cache-dir -i https://pypi.org/simple

    (注:使用python -m pip可确保安装到当前运行的 Python 环境中,避免环境错乱;使用官方源-i https://pypi.org/simple可避免国内镜像 403 报错。)

2. 批量转换 Python 脚本

将以下代码保存为1.py,修改PDF_FOLDER路径即可运行:

import os import pdfplumber PDF_FOLDER = r"D:\AI\知识库\tixiwenjian" # 修改为你的实际路径 def batch_convert(): if not os.path.exists(PDF_FOLDER): print(f" 错误:找不到文件夹 -> {PDF_FOLDER}") return pdf_files = [f for f in os.listdir(PDF_FOLDER) if f.lower().endswith('.pdf')] if not pdf_files: print("️ 该文件夹内没有找到 PDF 文件。") return print(f" 发现 {len(pdf_files)} 个 PDF 文件,开始转换...\n") for i, filename in enumerate(pdf_files, 1): pdf_path = os.path.join(PDF_FOLDER, filename) md_path = os.path.splitext(pdf_path)[0] + ".md" try: text_content = "" with pdfplumber.open(pdf_path) as pdf: for page in pdf.pages: text = page.extract_text() if text: text_content += text + "\n\n" with open(md_path, "w", encoding="utf-8") as f: f.write(text_content) print(f"[{i}/{len(pdf_files)}] 成功: {filename}") except Exception as e: print(f"[{i}/{len(pdf_files)}] 失败: {filename} -> {e}") if __name__ == "__main__": batch_convert()
3. 核心避坑指南(重点)
  • 拒绝环境变量依赖:不要使用subprocess调用外部命令行工具(如codemarkitdown),在公司电脑无管理员权限、未配置 PATH 时极易报[WinError 2]。直接在 Python 内import库是最稳妥的。
  • 警惕国内镜像源:遇到HTTP error 403 Forbidden时,不要死磕清华源,直接加-i https://pypi.org/simple切换官方源。
  • 警惕 Python 版本限制:遇到Requires-Python >=3.10报错时,说明当前 Python 版本过低,直接换用支持低版本的平替库(如pdfplumber)。
  • 警惕缓存旧版本:遇到ImportError时,可能是 pip 缓存了远古测试版,加上--no-cache-dir强制拉取最新版。
4. 后续优化建议(FastGPT 知识库对接)
  • pdfplumber提取的是纯文本,生成的.md文件可能没有#标题层级。
  • 在上传 FastGPT 前,建议抽查几个.md文件,手动给核心制度条款加上###等 Markdown 标题标记,这会让 FastGPT 的分块效果提升一个档次。