Как задать направление оглавления в файлах Docx с помощью python-docx - PullRequest
0 голосов
/ 08 апреля 2019

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


def create_TOC(document, mystyle1):
   add_paragraph_text(document, mystyle1, 'CENTER', True, 'Content of Doc'.decode('utf-8'), False, True)
   paragraph = document.add_paragraph()
   run = paragraph.add_run()
   fldChar = OxmlElement('w:fldChar')  # creates a new element
   fldChar.set(qn('w:fldCharType'), 'begin')  # sets attribute on element
   instrText = OxmlElement('w:instrText')
   instrText.set(qn('xml:space'), 'preserve')  # sets attribute on element
   instrText.text = r'''TOC \o "1-4" \h \z \u'''  # change 1-3 depending on heading levels you need

   fldChar2 = OxmlElement('w:fldChar')
   fldChar2.set(qn('w:fldCharType'), 'separate')
   fldChar3 = OxmlElement('w:t')
   fldChar3.text = "Right-click to update field."
   fldChar2.append(fldChar3)

   fldChar4 = OxmlElement('w:fldChar')
   fldChar4.set(qn('w:fldCharType'), 'end')

   run.font.rtl = True
   r_element = run._r
   r_element.append(fldChar)
   r_element.append(instrText)
   r_element.append(fldChar2)
   r_element.append(fldChar4)

   document.add_paragraph().add_run().add_break(WD_BREAK.PAGE)
   return [r_element, paragraph]


def update_TOC(r_element, paragraph):
   updateFields=OxmlElement('w:updateFields')
   updateFields.set(qn('w:val'), 'true')
   r_element.append(updateFields)
   p_element = paragraph._p

...emmited code

когда я открываю созданный файл слова, слово спрашивает меня об обновлении, и обновление происходит правильно. единственная проблема обновлена ​​TOC всегда имеет направление слева направо, но мне нужно направление справа налево. Как я могу исправить это, используя Python-Docx в Python?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...