【脚本分享】一键将多个word文件批量转成pdf

2025年 10月 19日 12点热度 0人点赞 0条评论

讲真最折磨人的活之一莫过于把一堆 Word 挨个儿另存为 PDF。点来点去,不仅慢,还老容易漏文件或选错参数。我之前也被折腾过几次,后来索性做了个小工具,省心多了。

思路很简单用 Windows 自带的 VBScript,调 Word 的 COM 接口,直接“一键批量转 PDF”。不装第三方、不改系统,电脑上有 Microsoft Word 就能跑。效果大概这样

大概能做到这些👇

  • 双击脚本就开工,把脚本所在文件夹里的所有 Word 都自动转成 PDF;
  • 生成的 PDF 和原文件同名、就放在原地,不用东找西找;
  • 常见格式都支持:.doc、.docx、.docm、.rtf;
  • 适合塞进日常流程里当个小工具用。

 

不想动手的小伙伴=word 批量转pdf:pan.quark.cn/s/f24a20b9a360

直接将脚本放在你需要转成pdf的word文件夹下双击运行即可。


下面是完整脚本 + 使用方法,我把坑点也顺手标了出来,照着做就行。

第一步需要存放word文档文件夹新建一个txt文件,名字:wordtopdf,复制内容如下


'==============================================
' Word 批量转 PDF(当前目录,同名同目录输出)
'==============================================

On Error Resume Next

' 如果是在 wscript 下运行,则自动切换到 cscript(控制台)
If InStr(LCase(WScript.FullName), "wscript.exe") > 0 Then
CreateObject("WScript.Shell").Run "cscript //nologo """ & WScript.ScriptFullName & """", 1, True
WScript.Quit
End If

Dim fso, folder, file, wd, ok, fail, ext, pdf, doc
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder(".")
Set wd = CreateObject("Word.Application")

If Err.Number <> 0 Then
WScript.Echo "未检测到 Microsoft Word,请确认已安装。"
WScript.Quit 1
End If

wd.Visible = False
ok = 0 : fail = 0

For Each file In folder.Files
ext = LCase(fso.GetExtensionName(file.Name))
If ext = "doc" Or ext = "docx" Or ext = "docm" Or ext = "rtf" Then
If Left(file.Name, 2) <> "~$" Then
pdf = fso.BuildPath(folder.Path, fso.GetBaseName(file.Name) & ".pdf")
Err.Clear
Set doc = wd.Documents.Open(file.Path, False, True)
If Err.Number <> 0 Then
WScript.Echo "失败(打开): " & file.Name & " → " & Err.Description
fail = fail + 1
Else
Err.Clear
doc.SaveAs pdf, 17 ' 17 = wdFormatPDF
If Err.Number <> 0 Then
WScript.Echo "失败(保存): " & file.Name & " → " & Err.Description
fail = fail + 1
Else
WScript.Echo "成功: " & file.Name & " → " & fso.GetFileName(pdf)
ok = ok + 1
End If
doc.Close False
Set doc = Nothing
End If
End If
End If
Next

wd.Quit
Set wd = Nothing

WScript.Echo ""
WScript.Echo "完成:成功 " & ok & " 个,失败 " & fail & " 个。"
WScript.Echo "当前目录:" & folder.Path
WScript.Echo "----------------------------------------------"
WScript.Echo "按任意键退出..."
WScript.StdIn.ReadLine

 


第二文件另存为wordtopdf.vbs有一点需要注意编码选择ANSI

第三步,双击运行wordtopdf.vbs

最后需要对文件按文件类型排一下序就好了

admin

这个人很懒,什么都没留下