用python打开MS-Word格式的PDF文件时,如何抑制“Microsoft-PDF Reflow has stopped working”错误?

2024-09-28 17:18:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python自动化pdf到docx的过程。 如果我用MS Word打开PDF文件,PDF回流将自动打开。因此,我用它作为OCR工具。 我用Word抑制了Word中的消息框_app.DisplayAlerts=0试着排除。 然而,消息框“微软PDF回流已停止工作”仍然不时弹出。你知道吗

现在我应该手动关闭这些消息框,这对于自动化流程来说是不合理的。有没有办法抑制PDF回流的错误?你知道吗

下面是我使用的代码:

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()

谢谢你的帮助!你知道吗


Tags: importclientapp消息docpdfwin32comword
1条回答
网友
1楼 · 发布于 2024-09-28 17:18:39

我自己找到了答案:

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回流的错误报告,而且会抑制所有这些错误报告。你知道吗

相关问题 更多 >