首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何抑制"Microsoft PDF Reflow已停止工作“错误时,使用python打开与MS Word的pdf文件?

如何抑制"Microsoft PDF Reflow已停止工作“错误时,使用python打开与MS Word的pdf文件?
EN

Stack Overflow用户
提问于 2018-11-29 17:07:05
回答 1查看 314关注 0票数 0

我试图使用python自动化pdf- to -docx的过程。如果我用MS Word打开PDF文件,pdf Reflow将自动打开。因此,我将其用作OCR工具。我已经使用word_app.DisplayAlerts=0和try-except从Word中取消了消息框。但是,有时仍会弹出消息框"Microsoft PDF Reflow已停止工作“。

现在我应该手动关闭这些消息框,这对于自动化过程来说是不合理的。有什么方法可以抑制PDF回流中的错误吗?

下面是我使用的代码:

代码语言:javascript
复制
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()

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2018-12-10 14:26:09

我自己找到了答案:

代码语言:javascript
复制
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的错误报告,而且会抑制所有错误报告。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53535280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档