首页 > 解决方案 > 当我只能以只读模式打开某些文件时,使用 Python comtypes 打开和保存 word 文件?

问题描述

有没有人有打开许多 Word 文档并将它们保存为 PDF 的经验,但是当它们在共享服务器上时,可能有其他人正在编辑它们,但你仍然想通过并保存PDF?

我有一些使用以下 comtypes 的代码,它适用于共享驱动器上其他用户未编辑的文件,但如果任何文档当前由同事打开,则会失败,因为它们以只读方式打开并且我无法保存。

word=comtypes.client.CreateObject(Word.Application)
word.Visible = 1
input_file_path = input_file_path
doc = word.Documents.Open(input_file_path)
file_name = os.path.splitext(input_file_name)[0]
output_file_path = output_file_path
doc.SaveAs(output_file_path,32)
doc.Close()
word.Quit()

标签: pythonpermissionscomtypes

解决方案


将word文档作为数据文件打开,将临时word文档作为输出文件打开,循环读取BUFSIZE块数据,将数据写入输出文件,完成后关闭文件。基本上,将 word 文件的二进制副本复制到临时文件,然后 PDF 化生成的 docx 临时文件并将其删除。

这是一个额外的步骤,临时文件需要额外的磁盘空间,但如果你不受限制,它肯定比担心打开文件更安全。

这篇文章:Python writing binary files, bytes提供了一些关于复制二进制文件副本的想法。


推荐阅读