Согласно комментариям выше, и с большой помощью ROAR (спасибо, ROAR!) Я все заработал.
рецепт ROAR здесь работал отлично, за исключением того, что вызов rpr.get_or_add_sz () дал мне нечитаемый файл .docx. Отказ от этого заставил все работать и не вызывал никаких проблем. Важнейшей отсутствующей ссылкой было добавить следующее в в стиле:
<w:bidi w:val="1">
<w:jc w:val="both"/>
Существует метод my_style.get_or_add_pPr () для получения ссылки на раздел стиля, и код аналогичен коду для обновления :
w_nsmap = '{'+ppr.nsmap['w']+'}'
bidi = None
jc = None
for element in ppr:
if element.tag == w_nsmap + 'bidi':
bidi = element
if element.tag == w_nsmap + 'jc':
jc = element
if bidi is None:
bidi = OxmlElement('w:bidi')
if jc is None:
jc = OxmlElement('w:jc')
bidi.set(qn('w:val'),'1')
jc.set(qn('w:val'),'both')
ppr.append(bidi)
ppr.append(jc)
Последнее, что мне было нужно, это иметь дело со смешанным языком, который я сделал, разбив текст на несколько прогонов. Пункты текста на иврите, с которыми я имел дело, получили измененный стиль с rtl = True, но я выделил все последовательности ASCII, которые начинались и заканчивались буквой:
[A-Za-z][\u0020-\u007e]*[A-Aa-z]
на отдельные прогоны с rtl = False.