أتمتة تحويل ملفات الكلمات إلى تنسيقات أخرى

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

فيما يلي بعض الخيارات للشخص الأكثر عادية:

  • يعالج التكرار على جميع الملفات واحدا تلو الآخر. بعد الوثيقة العاشرة ، سوف يأتي إليك التفكير بأنك تفعل شيئًا خاطئًا.
  • حاول أن تجد على الإنترنت مكتبة خاصة (ملحق) للعمل مع ملفات المستندات بلغة برمجة تملكها. قضاء ساعة أخرى في فهم كيفية العمل مع هذه المكتبة. عليك أيضًا مواجهة حقيقة أن مبادئ العمل مع doc و docx مختلفة قليلاً.
  • حاول إعادة حفظ جميع المستندات تلقائيًا بتنسيق مختلف ، مما سيكون أكثر ملاءمة للعمل بها.

فقط عن الخيار الأخير وسوف نتحدث.

و vbs النصي يسرع لمساعدتنا. يمكن استدعاء البرنامج النصي vbs من سطر الأوامر ، والذي يمكن القيام به بأي لغة برمجة.

قم بإنشاء ملف converter.vbs

Const wdFormatText = 2 Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) objDoc.SaveAs WScript.Arguments.Item(1), wdFormatText objWord.Quit 

في السطر الأول ، نشير بالتنسيق الذي سنقوم بتحويله: من 2 إلى txt و 17 إلى pdf.
جميع الأشكال يمكن الاطلاع هنا . في السطر الثاني ، نفتح الكلمة مباشرة. بعد الفتح ، يمكنك إضافة السطر التالي:

 objWord.Visible = TRUE 

هذا سوف يسبب لنا أن نرى عملية فتح كلمة. قد يكون ذلك مفيدًا في حالة حدوث خطأ في وقت ما ، وعدم إغلاق الكلمة بنفسها ، وبدون هذا السطر ، لا يمكن قتل العملية إلا من خلال مدير المهام ، ويمكننا فقط النقر فوق التقاطع.

في موجه الأوامر ، سيتم تشغيل البرنامج النصي كما يلي:

 converter.vbs ___\_.docx ___\___ 

Wscript.Arguments.Item (0) هو full_path_to_file \ file_name.docx
WScript.Arguments.Item (1) - full_path_to_save_save \ file_name بدون ملحق
وفقًا لذلك ، في السطر الثالث من البرنامج النصي لدينا ، نفتح الملف ، وفي السطر التالي نقوم بحفظه بالتنسيق المحدد. وفي النهاية أغلق الكلمة.

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

فبس لديه محاولة الخرقاء جدا بناء الصيد. يمكنك التغلب على هذه المشكلة عن طريق إضافة سطرين فقط. في المجموع ، يكون النص الثابت الكامل كما يلي:

 Const wdFormatText = 2 Set objWord = CreateObject("Word.Application") objWord.Visible = TRUE On Error Resume Next Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) Set objDoc = objWord.Documents.Open(Wscript.Arguments.Item(0), True) objDoc.SaveAs WScript.Arguments.Item(1), wdFormatText objWord.Quit 

كما ترون ، يتم فتح فتح الملف. في حالة تماشي كل شيء مع الملف ، سيتم فتح الملف ببساطة مرتين ، وفي حالة حدوث خطأ ، سيستمر فتح الملف.

ولكل رجل إطفاء ، مثال على كيفية ظهور وظيفة في بيثون

 import os #folder_from = os.getcwd() + r'\words' - ,    word  #folder_to = os.getcwd() + r'\txts' - ,    def convert(file_name): str1 = folder_from + r"/" + file_name str2 = folder_to + r"/" + file_name[:file_name.rfind('.')] os.system('converter.vbs "' + str1 + '" "' + str2 + '"') #  

بعد ذلك ، قم ببساطة بتطبيق هذه الوظيفة على جميع الملفات التي تحتاج إلى تحويل.

ملخص


  1. هذا الحل مناسب لجميع صيغ الكلمات.
  2. لم تنفق أكثر من 10 دقائق في قراءة هذا المقال.
  3. يمكنك تطبيق معرفة أي لغة البرمجة.

Source: https://habr.com/ru/post/ar441736/


All Articles