كيف يمكنني استخدام المدقق الإملائي/ النحوي لبرنامج Microsoft Word برمجياً؟

StackOverflow https://stackoverflow.com/questions/1646801

سؤال

أرغب في معالجة عدد متوسط ​​إلى كبير من المقتطفات النصية باستخدام المدقق الإملائي/النحوي للحصول على ملف خشن التقريب وترتيب "الجودة". السرعة ليست مصدر قلق أيضًا ، لذلك أعتقد أن أسهل طريقة هي كتابة نص يمرر المقتطفات إلى Microsoft Word (2007) ويدير مدققه الإملائي والقواعد عليها.

هل هناك طريقة للقيام بذلك من خلال برنامج نصي (على وجه التحديد، بايثون)؟ما هو المصدر الجيد لتعلم كيفية التحكم في Word برمجيًا؟

إذا لم يكن الأمر كذلك، أفترض أنه يمكنني تجربة شيء ما المدقق النحوي مفتوح المصدر (SO).

تحديث

ردًا على إجابة كريس، هل هناك على الأقل طريقة لـ أ) فتح ملف (يحتوي على المقتطف (المقتطفات))، ب) تشغيل برنامج VBA النصي من داخل Word الذي يستدعي المدقق الإملائي والنحوي، و ج) إرجاع بعض هل تشير إلى "نتيجة" المقتطف (المقتطفات)؟

تحديث 2

لقد أضفت إجابة يبدو أنها ناجحة، ولكن إذا كان لدى أي شخص اقتراحات أخرى فسوف أبقي هذا السؤال مفتوحًا لبعض الوقت.

هل كانت مفيدة؟

المحلول

استغرق الأمر بعض البحث، ولكن أعتقد أنني وجدت حلاً مفيدًا.بعد النصيحة في http://www.nabble.com/Edit-a-Word-document-programmatically-td19974320.html أنا أستخدم win32com الوحدة النمطية (إذا لم يعمل رابط SourceForge، وفقًا لـ إجابة Stack Overflow هذه يمكنك استخدام pip للحصول على الوحدة النمطية)، والتي تتيح الوصول إلى كائنات COM الخاصة بـ Word.يوضح الكود التالي هذا بشكل جيد:

import win32com.client, os

wdDoNotSaveChanges = 0
path = os.path.abspath('snippet.txt')

snippet = 'Jon Skeet lieks ponies.  I can haz reputashunz?  '
snippet += 'This is a correct sentence.'
file = open(path, 'w')
file.write(snippet)
file.close()

app = win32com.client.gencache.EnsureDispatch('Word.Application')
doc = app.Documents.Open(path)
print "Grammar: %d" % (doc.GrammaticalErrors.Count,)
print "Spelling: %d" % (doc.SpellingErrors.Count,)

app.Quit(wdDoNotSaveChanges)

الذي ينتج

Grammar: 2
Spelling: 3

والتي تطابق النتائج عند استدعاء الشيك يدويًا من Word.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top