Открыть PDF с Word VBA, чтобы сохранить как текст - PullRequest
0 голосов
/ 21 октября 2019

Я автоматизирую обработку PDF-файлов через VBA, но проблема, которую я не могу решить, - это Word, показывающий диалоговое окно, касающееся преобразования файлов. Я ищу решение, которое не требует изменения реестра, поскольку это не разрешено в рабочей среде.

Word теперь преобразует ваш PDF-файл в редактируемый документ Word. ...

В этом диалоговом окне есть флажок «Больше не показывать это сообщение», который работает так, как рекламируется, но мне нужно, чтобы код был переносимым на ПК и пользователей

Хост-приложение на самом деле 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 ProPlнам

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...