vba - 使用 Word VBA 打开 PDF 以另存为文本
问题描述
我正在通过 VBA 自动处理 PDF 文件,但我似乎无法解决的问题是 Word 有助于显示有关文件转换的对话框。我正在寻找不需要修改注册表的解决方案,因为在工作环境中不允许这样做
Word 现在会将您的 PDF 转换为可编辑的 Word 文档...
此对话框确实提供了一个复选框“不再显示此消息”,它可以像宣传的那样工作,但我需要代码可以跨 PC 和用户移植
宿主应用程序实际上是 Access,我在其中引用了 Microsoft Word 16.0 对象库。我也直接在 Word 中尝试过同样的问题。
下面是我正在使用的代码 - 它确实有效,除了 Word 提供了一个我不想要的对话框。
Sub convertPDFtoTextViaWord()
Const filePath As String = "C:\myfilepath\"
Dim file As String, fileName As String
Dim myWord As Word.Application, myDoc As Word.Document
Set myWord = New Word.Application
file = Dir(filePath & "*.pdf")
myWord.DisplayAlerts = wdAlertsNone
Do While file <> ""
fileName = Replace(file, "pdf", "txt")
Set myDoc = myWord.Documents.Open(fileName:=filePath & file, ConfirmConversions:=False, Format:="PDF Files")
myDoc.SaveAs2 filePath & fileName, FileFormat:=wdFormatText, Encoding:=1252, lineending:=wdCRLF
myDoc.Close False
file = Dir
Loop
Set myDoc = Nothing
Set myWord = Nothing
End Sub
我应该注意,由于我已选中“不再显示此消息”复选框,因此此代码按预期执行,但我想以编程方式避免需要这样做,因为我并不总是能够执行此操作手动步骤
我还应该注意,我尝试直接在 Word 中运行相同的代码(进行了一些适当的修改),结果相同
我添加了这一行myWord.DisplayAlerts = wdAlertsNone
,因为这就是我在 Excel 中的做法(我有更多的 VBA 经验)
我也尝试更改Format:="PDF Files"
为Format:=wdOpenFormatAuto
(无论如何,这是参数的默认值)没有更改
重申一下,除了我无法抑制似乎应该完全ConfirmConversions:=False
支持的对话框之外,代码可以按需要工作。
使用 Office365 专业增强版
谢谢