Открытие и сохранение файлов Word с использованием Python, когда я могу открыть только некоторые файлы в режиме только для чтения? - PullRequest
0 голосов
/ 08 апреля 2020

Есть ли у кого-нибудь опыт открытия многих документов Word и сохранения их в PDF, но когда они находятся на общем сервере, и, возможно, кто-то еще редактирует их в данный момент, но вы все равно хотите go просмотреть и сохранить PDF?

У меня есть некоторый код, использующий комтипы, как показано ниже, который работает для файлов, которые не редактируются другим пользователем на общем диске, но завершится ошибкой, если какой-либо из документов в настоящее время открыть коллегой, поскольку они открываются только для чтения, и я не могу сохранить.

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

1 Ответ

0 голосов
/ 08 апреля 2020

откройте документ word в виде файла данных, откройте временный документ word в качестве выходного файла, прочитайте данные фрагментов BUFSIZE в al oop, запишите данные в выходной файл, закройте файлы после завершения. Обычно делайте двоичную копию файла word во временный файл, затем PDF-файл своего результирующего временного файла docx и удалите его.

Это дополнительный шаг, который потребует дополнительного места на диске для временного файла, но если вы не ограничены, это, безусловно, будет безопаснее, чем беспокоиться об открытых файлах.

Этот пост: Python запись двоичных файлов, байты предлагает некоторые идеи по копированию при создании копий двоичных файлов. .

...