2017-08-22 49 views
10

Bir belge oluşturmak için Python docx kitaplığını kullanıyorum, yazım hatalarını açmak ve bulmak istiyorum. Ancak belgeyi açtığımda hiçbir yazım hatası bayrağı yok (küçük kırmızı alt çizgiler) veya Yazım denetimi yaparsam. Bir satırı veya kopyayı düzenlerseniz, içeriği yeniden yazım işlevselliği beklendiği gibi çalışır ve kesilir.Python docx'i kullanırken çıktı belgesinde yazımın nasıl etkinleştirileceği açıklanır?

Çıkış belgesindeki otomatik olarak yazım hatalarını görüntülemek/tanıması için çıktı belgesini almanın bir yolu var mı? "No_proof" bayrağıyla oynadım ama bu yardım etmiyor. (64 bit Python 3.4 kullanarak, Windows kutusuna docx 8.6, Word 2013'te çıktı açılıyor)

Herhangi bir fikir için teşekkürler!

Kod çoğaltmak:

from docx import Document 
document = Document() 
paragraph = document.add_paragraph('This has a spellling errror') 
document.save(r'SpellingTester.docx') 

Çıktı Word'de:

cevap

4

Ben belgenin Lxml düğüm elemanı sarıyor olduğu document.settings nesnesi kullanılarak çalışacaktı. Dokümantasyondan da görebileceğiniz gibi hideSpellingErrors özniteliği var.

<xsd:element name="hideSpellingErrors" type="CT_OnOff" minOccurs="0"/> 

DÜZENLEME

Python DOCX Settings

: biraz daha araştırma yaptıktan sonra böyle bir şey denemek:

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 öneki ile değiştirebilir, ancak kolayca Lxml elemanda okumuş. Şu anda bilmiyorum, işleri daha doğrudan ve temiz bir şekilde yapmanın bir yolu varsa, bu benim için işe yarıyor. docx içinde

proofState ayar hakkında daha fazla bilgi: Bir cazibe gibi çalıştı

+0

! Teşekkür ederim. –