При использовании Python docx как включить правописание в выходном документе?
Я использую библиотеку Python docx для создания документа, который я хотел бы открыть и найти орфографические ошибки. Но когда я открываю документ, ни один из флагов орфографических ошибок (маленькие красные подчеркивания) или не идентифицируются, если я запускаю проверку орфографии. Если я редактирую строку или копирую, вырезаю и вставляю содержимое обратно в word, функциональность орфографии работает так, как ожидалось.
есть ли способ заставить выходной документ отображать / распознавать орфографические ошибки на выходе документ автоматически? Я играл с флагом "no_proof", но это, похоже, не помогает. (Используя 64-битный Python 3.4, docx 8.6 в окне Windows, открывая вывод в Word 2013)
Спасибо за любые идеи!
код для воспроизведения:
from docx import Document
document = Document()
paragraph = document.add_paragraph('This has a spellling errror')
document.save(r'SpellingTester.docx')
1 ответов
Я бы попробовал использовать document.settings
объект, который он обертывает элемент узла lxml документа.
Как вы можете видеть из документации есть .
<xsd:element name="hideSpellingErrors" type="CT_OnOff" minOccurs="0"/>
изменить: После исследования немного дальше я бы попробовал что-то вроде этого:
import docx
document = docx.Document()
DOCX = '{http://schemas.openxmlformats.org/wordprocessingml/2006/main}'
element = document.settings.element.find(DOCX + 'proofState')
element.attrib[DOCX + 'grammar'] = 'dirty'
element.attrib[DOCX + 'spelling'] = 'dirty'
document.add_paragraph("This has a spellling errror")
document.save("test.docx")
С DOCX
префикс, который может измениться, но он легко читается в элементе lxml.
Я не знаю прямо сейчас, есть ли способ сделать что-то большее. прямо и чисто, но это работает для меня.
подробнее о proofState
настройки в docx: