Как подавить ошибку «Microsoft PDF Reflow прекратил работать» при использовании python для открытия PDF-файла в MS Word? - PullRequest
0 голосов
/ 29 ноября 2018

Я пытался автоматизировать процесс pdf-to-docx, используя python.PDF Reflow будет автоматически открыт, если я открою PDF-файлы с помощью MS Word.Поэтому я использовал его как инструмент OCR.Я подавил окна сообщений из Word, используя word_app.DisplayAlerts = 0 и try-exc.Однако окно сообщения «Microsoft PDF Reflow перестало работать» иногда по-прежнему появлялось.

Теперь я должен вручную закрыть эти окна сообщений, и это нецелесообразно для автоматизированного процесса.Есть ли способ подавления ошибок в PDF Reflow?

Ниже приведен код, который я использую:

import pythoncom
import win32com
from win32com.client import Dispatch, constants
#import logging

word_app = win32com.client.gencache.EnsureDispatch("Word.Application")

word_app.Visible = 0
word_app.DisplayAlerts = 0
wc = win32com.client.constants
try:
    word_doc = word_app.Documents.Open('file.pdf')
except pythoncom.com_error as e:
    print(e)
    #logger.info(e)
word_doc.SaveAs(FileName  = 'file.docx', FileFormat = wc.wdFormatXMLDocument)
word_doc.Close(SaveChanges = wc.wdDoNotSaveChanges)

word_app.Quit()

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 10 декабря 2018

Сам нашел ответ:

import win32com
shell_app = win32com.client.Dispatch('WScript.Shell')
RegKey = r'HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting'
GetKeyValue = shell_app.RegRead(os.path.join(RegKey, "DontShowUI"))
EditKeyValue = shell_app.RegWrite(os.path.join(RegKey, "DontShowUI"), 1, "REG_DWORD")

##use this to restore your registry
RestoreKeyValue = shell_app.RegWrite(os.path.join(RegKey, "DontShowUI"), GetKeyValue, "REG_DWORD")

Будьте осторожны при использовании этого кода, поскольку он редактирует реестр и может повредить ваш компьютер.

Этот код не является идеальным решением, поскольку он подавляетне только отчеты об ошибках PDF Reflow, но и ВСЕ из них.

...