文件图片 本地计算 开箱即用 内置示例 不留痕迹

PDF 转Word

在浏览器本地用 pdf.js 读出 PDF 的文字层,按段落流重排后用 docx 库生成 .docx 文件:只保证文字内容与段落顺序,不承诺版式 1:1,合同条款、文章正文这类「拿字不拿版式」的需求最合用。

需要「PDF 里的文字」而不是「PDF 的样子」时,本工具最合用:把可复制文字的 PDF 抽成段落流,生成能直接编辑的 .docx。逐行分段适合保留原文行文,按页合并适合再把整段丢进其他编辑器继续排版。

口径提醒:这是文字抽取,不是版式还原——分栏、页眉页脚、表格、图片、字体字号都不会带过来;扫描件(每页是照片、没有文字层)抽不出内容,需要先做 OCR。要「长得和原稿一样」的图片版请用「PDF 转图片」。

—

—

—

使用步骤

  1. 「选择文件」上传一个含文字层的 PDF(或直接用内置示例)。
  2. 选分段方式:每行一段(默认)或按页合并成段。
  3. 需要的话改输出文件名,自动补 .docx 后缀。
  4. 点「开始转换」,抽取完成后可预览前几段并下载 Word 文档。

计算原理与示例

怎么把 PDF 转成可编辑的 Word

上传后 pdf.js 在浏览器本地读出每页的文字层:每条文字带页面坐标,按基线从高到低归成视觉行、同一行内按左右排序,得到与阅读原文一致的段落流;选好分段方式和文件名点「开始转换」,docx 库把段落流写成 .docx 供下载。

分段方式怎么选

「每行一段」忠实保留原文的行节奏,适合逐条核对、继续手工排版;「按页合并」把每页文字并成一个长段,适合直接拿去给编辑器或自己做全文检索。想要自然的句子分段,可以在 Word 里用查找替换把行尾标记合并。

为什么转换后版式和原稿不一样

本工具的定位是文字抽取:PDF 的文字是带坐标的碎片,版式(分栏、表格、图形、字体字号)是另一套绘制指令,抽文字必然丢版式,这是「PDF 转 Word」所有本地方案共同的口径,站方不对 1:1 还原作承诺。要视觉一致请转 PNG。

扫描件为什么转不出文字

扫描版 PDF 的每页是一张照片,没有文字层可抽,转换结果会是空文档(页面会提示)。这类文件需要先过一遍 OCR(光学文字识别)生成带文字层的 PDF,再回到本工具转换。

代码示例

JavaScript pdf.js 抽取文字 + docx 生成文档(浏览器内,不上传)

// 文字层抽取:pdf.js 按页给出带坐标的文本片段
const doc = await pdfjsLib.getDocument({ data: bytes }).promise;
const page = await doc.getPage(1);
const tc = await page.getTextContent();
const lines = pdfTextLines(tc.items);   // 按基线 y 归行、x 排序

// 生成 Word:docx 库把每行落成一个段落
const docx = new Document({ sections: [{
  children: lines.map((t) => new Paragraph({ children: [new TextRun(t)] })),
}] });
const blob = await Packer.toBlob(docx);   // blob 即可另存为 .docx

Shell 命令行两步走:pdftotext + pandoc

# 抽出纯文本(-layout 尽量保留行结构)
pdftotext -layout input.pdf input.txt

# 文本转 docx(空行分段)
pandoc input.txt -o output.docx

# 或直接整本转换(版式由 LibreOffice 还原)
soffice --headless --convert-to docx input.pdf

常见问题

转换过程会把 PDF 传到服务器吗?

不会。文字抽取与 .docx 生成都在你的浏览器里完成(pdf.js 加 docx 库本地运行),合同、论文稿这类敏感文件不出本机,也没有上传下载环节的等待。

转出来的 Word 能保持原排版吗?

不能,这是本工具的如实口径:只保文字内容与段落顺序,分栏、表格、图片、字体字号都不会保留。要版式接近原稿,用「PDF 转图片」逐页出图;要真正可编辑的版式还原,需要桌面级转换器。

为什么下载的文件里是空的?

多半是扫描件:页面是照片、没有文字层,抽不出任何文字,文档里会留一行提示。先用 OCR 工具给 PDF 加上文字层(不少阅读器自带「识别文字」功能)再转即可。

文字顺序会乱吗?

单栏文档按从上到下、从左到右还原阅读顺序,基本不会乱。跨栏排版的 PDF 是按栏绘制的,抽取会按坐标逐行进行,可能出现左右栏文字交替——这类文件建议先拆成单栏或用 PDF 拆分分块处理。

生成的是 .docx 还是 .doc?

是 .docx(Office 2007 起的标准格式),WPS、Word、Google Docs、Pages 都能直接打开。老 .doc 格式本地库不再支持写出,需要时可在 Word 里另存为。

多大的 PDF 转得动?

限 60 页、30 MB 以内。文字抽取远比渲染出图轻,但超长文档逐页读坐标也有耗时,且转出的段落流太长编辑体验也差;更长的文件先用 PDF 拆分工具分段。

能带上标题层级或加粗吗?

当前版本输出纯段落流,不做标题、加粗等样式推断(PDF 的字体信息不足以可靠还原语义层级)。转完后在 Word 里套用样式即可;样式推断在后续版本评估中。

加密 PDF 能转吗?

带打开密码的 PDF 读不出内容,需要先移除密码;只有「禁止复制文字」这类权限限制的文件,本地抽取一般不受权限位约束,可以直接尝试转换。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。