Я работаю над программой, которая должна извлечь два изображения из документа MS Word, чтобы использовать их в другом документе. Я знаю, где расположены изображения (первая таблица в документе), но когда я пытаюсь извлечь из таблицы любую информацию (даже просто текст), я получаю пустые ячейки.
ВотДокумент Word , из которого я хочу извлечь изображения. Я хочу извлечь изображения 'Rentel' с первой страницы (первая таблица, строки 0 и 1, столбец 2).
Я попытался попробовать следующий код:
from docxtpl import DocxTemplate
source_document = DocxTemplate("Source document.docx")
# It doesn't really matter which rows or columns I use for the cells, everything is empty
print(source_document.tables[0].cell(0,0).text)
Что просто дает мне пустые строки ...
Я прочитал это обсуждение и это , что проблема может заключаться в том, что "содержитсяв элементе оболочки, который Python Docx не может прочитать ". Они предлагают изменить исходный документ, но я хочу иметь возможность выбрать любой документ, который был ранее создан с тем же шаблоном, что и исходный документ (поэтому эти документы также содержат ту же проблему, и я не могу изменить каждый документ отдельно). Таким образом, решение только для Python - это единственный способ решить проблему.
Поскольку мне также нужны только эти два конкретных изображения, извлечение любого случайного изображения из xml путем разархивирования файла Wordне очень подходит моему решению, если только я не знаю, какое имя изображения мне нужно извлечь из разархивированных папок файлов Word.
Я действительно хочу, чтобы это работало, поскольку оно является частью моей диссертации (и яЯ всего лишь инженер-электромеханик, поэтому я не очень разбираюсь в программном обеспечении).
[EDIT] : Вот код XML для первого изображения (source_document.tables[0].cell(0,2)._tc.xml
) и вот оно для второго изображения (source_document.tables[0].cell(1,2)._tc.xml
). Однако я заметил, что, взяв (0,2) в качестве значения строки и столбца, я получаю все строки в столбце 2 в первой «видимой» таблице . Ячейка (1,2) дает мне все строки в столбце 2 во второй "видимой" таблице .
Если проблема не решается напрямую с помощью Python Docx, возможно ли это? найти имя изображения или идентификатор или что-то в XML-коде, а затем добавить изображение, используя этот идентификатор / имя с Python Docx?