Автоматизируйте добавление миниатюр в существующие файлы .docx - PullRequest
0 голосов
/ 13 февраля 2020

Программное обеспечение:

  • Windows 10
  • Word 2016

Ситуация:

Один из друзей моей мамы показывал ее миниатюры документов Word - в проводнике файлов при просмотре файлов в виде значков каждый файл Word .docx отображается как изображение первой страницы. Теперь она ДОЛЖНА иметь это; -).

В Word эта функция встроена, но по умолчанию отключена. Если вы скажете Word сохранить миниатюру как часть документа, File Explorer знает, как найти и отобразить ее. Вы можете включить сохранение миниатюр отдельно для каждого документа или по умолчанию; Я включил его по умолчанию.

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

Частичное решение

Что делает , так это загрузка файла и сохранение Как новое имя файла - он получает миниатюру. Затем вы можете снова сохранить как исходное имя файла, и на этот раз он также получит миниатюру.

Новая проблема

Это замечательно, но у моей матери есть 11 000 существующих документов, которые она хотела бы преобразовать :-P , Автоматика на помощь!

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

Пример кода:

# tested with Anaconda 3.7.6 64bit
import win32com.client as win32       # pywin32

TEST_FILE = r"c:\users\mom\documents\doc_with_no_thumbnail.docx"
TEMP_FILE = r"c:\users\mom\documents\DELETE ME.docx"

word = w32.gencache.EnsureDispatch('Word.Application')    # open an instance of Word
doc = word.Documents.Open(TEST_FILE)                      # open test file
doc.SaveAs2(TEMP_FILE)                                    # Error: file saves, but no thumbnail!
doc.SaveAs2(TEST_FILE)                                    # Error: file saves, but no thumbnail!
doc.Close(False)

I просмотрела документацию Microsoft для метода SaveAs2 ; в нем вообще не упоминаются эскизы.

Может кто-нибудь предложить способ заставить Word добавить миниатюру в существующий файл .docx без ручного вмешательства?

Редактировать:

Я создал два примера файлов .docx (с миниатюрами и без): https://www.dropbox.com/sh/ou1orebf9tkrab4/AADVb24rqAXZOUB5GJzO4GM3a?dl=0

Если вы сохраните их и просмотрите в проводнике, они должны выглядеть как enter image description here

...