Как я могу получить упорядоченный список таблиц и изображений в текстовом документе с Python? - PullRequest
0 голосов
/ 25 августа 2018

Мне нужно получить таблицы и предыдущие / следующие изображения из файла docx, но я не могу себе представить, как получить это с помощью python.

Насколько я знаю, мы можем получить список таблиц с document.tables, но мы не можем получить список изображений в формате docx с python-docx.

Как получить упорядоченный список элементов документа, подобных этому

[
Image1,
Image2,
Table1,
Image3,
Table3,
Image4,
...
]?

1 Ответ

0 голосов
/ 25 августа 2018

из документации по python-docx:

Концептуально документы Word имеют два слоя: текстовый слой и слой для рисования. В текстовом слое текстовые объекты перемещаются слева направо и сверху вниз, начиная новую страницу после заполнения предыдущей. В слое рисования объекты рисования, называемые фигурами, размещаются в произвольных положениях. Их иногда называют плавающими фигурами.

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

[...] На момент написания статьи python-docx поддерживает только встроенные изображения.

TLDR: вы можете получить изображения, только если они находятся на текстовом слое. Вы можете сделать это, используя docx.document.inline_shapes , который возвращает InlineShape объекты . Вы можете проверить, являются ли эти объекты InlineShape изображениями с их атрибутом type.

...