首页 > 解决方案 > 使用 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 专业增强版

谢谢

标签: vbams-accesspdfms-wordoffice365

解决方案


推荐阅读