Как поддерживать порядок в документе docx при вставке элементов с помощью doc.element.body.append() и функций высокого уPython

Программы на Python
Anonymous
Как поддерживать порядок в документе docx при вставке элементов с помощью doc.element.body.append() и функций высокого у

Сообщение Anonymous »

Я пытаюсь создать документ Word, который представляет собой смесь вставленных преобразованных строк уценки и изображений. Файл генерируется, однако элементы уценки включаются в самый конец документа, после картинок. Ниже приведен лучший способ конвертации уценки (я также готов изменить это). Вот мой код:

Код: Выделить всё

import os
import pypandoc
from docx import Document

doc = Document()

def add_md(txt):
TMP_FILE = 'tmp.docx'
if os.path.exists(TMP_FILE):
os.remove(TMP_FILE)

pypandoc.convert_text(txt, 'docx', 'md', outputfile=TMP_FILE)
tmp_doc = Document(TMP_FILE)
os.remove(TMP_FILE)

for element in tmp_doc.element.body:
doc.element.body.append(element)

add_md('### first')
add_md('### second')
doc.add_picture('./family.jpg')

doc.save('sample.docx')
Я ожидаю, что результат будет:
  • первый заголовок
  • второй заголовок
  • фото
Однако порядок:
  • фото
  • первый заголовок
  • второй заголовок
Я знаю, что одним из способов решения проблемы было бы вручную создать xml для изображения и вставить его, однако я хотел бы иметь возможность продолжать использовать функции docx высокого уровня и при этом иметь возможность чтобы вставить md таким образом. Можно мне тоже взять торт и съесть его?

Подробнее здесь: https://stackoverflow.com/questions/786 ... t-body-app

Вернуться в «Python»