العمل مع التعليقات
حاول عبر الإنترنت
يمكنك تجربة هذه الوظيفة مع إزالة التعليقات التوضيحية مجانًا عبر الإنترنت الخاص بنا.
يتيح Aspose.Words للمستخدمين العمل مع التعليقات - يتم تمثيل التعليقات الموجودة في مستند في Aspose.Words بواسطة فئة Comment. استخدم أيضًا فئات CommentRangeStart وCommentRangeEnd لتحديد منطقة النص التي يجب أن ترتبط بالتعليق.
اضف تعليق
يسمح لك Aspose.Words بإضافة التعليقات بعدة طرق:
- استخدام فئة Comment
- استخدام فئتي CommentRangeStart وCommentRangeEnd
يوضح مثال التعليمات البرمجية التالي كيفية إضافة تعليق إلى فقرة باستخدام فئة Comment:
يوضح مثال التعليمات البرمجية التالي كيفية إضافة تعليق إلى فقرة باستخدام منطقة نص وفئتي CommentRangeStart وCommentRangeEnd:
استخراج أو إزالة التعليقات
يعد استخدام التعليقات في مستند Word (بالإضافة إلى تعقب التغييرات) ممارسة شائعة عند مراجعة المستندات، خاصة عندما يكون هناك عدة مراجعين. يمكن أن تكون هناك مواقف يكون فيها الشيء الوحيد الذي تحتاجه من المستند هو التعليقات. لنفترض أنك تريد إنشاء قائمة بنتائج المراجعة، أو ربما قمت بجمع كل المعلومات المفيدة من المستند وتريد ببساطة إزالة التعليقات غير الضرورية. قد ترغب في عرض أو إزالة تعليقات مراجع معين.
في هذه العينة، سنلقي نظرة على بعض الأساليب البسيطة لجمع المعلومات من التعليقات داخل المستند ولإزالة التعليقات من المستند. سنغطي على وجه التحديد كيفية:
- استخراج كافة التعليقات من وثيقة أو فقط تلك التي أدلى بها مؤلف معين.
- إزالة كافة التعليقات من مستند أو من مؤلف معين فقط.
كيفية استخراج أو إزالة التعليقات
التعليمات البرمجية الموجودة في هذه العينة بسيطة للغاية وتعتمد كافة الأساليب على نفس الأسلوب. يتم تمثيل التعليق في مستند Word بواسطة كائن Comment في نموذج كائن مستند Aspose.Words. لتجميع كل التعليقات في مستند، استخدم أسلوب get_child_nodes مع تعيين المعلمة الأولى على NodeType.COMMENT. تأكد من تعيين المعلمة الثانية لأسلوب get_child_nodes على true: وهذا يفرض على get_child_nodes الاختيار من جميع العقد الفرعية بشكل متكرر، بدلاً من جمع العناصر الفرعية المباشرة فقط.
لتوضيح كيفية استخراج التعليقات وإزالتها من مستند، سنمر بالخطوات التالية:
- افتح مستند Word باستخدام فئة Document
- احصل على كافة التعليقات من المستند في مجموعة
- لاستخراج التعليقات:
- انتقل إلى المجموعة باستخدام عامل التشغيل foreach
- قم باستخراج وإدراج اسم المؤلف والتاريخ والوقت ونص جميع التعليقات
- قم باستخراج وإدراج اسم المؤلف والتاريخ والوقت ونص التعليقات المكتوبة بواسطة مؤلف محدد، في هذه الحالة المؤلف ‘ks’
- لإزالة التعليقات:
- قم بالرجوع للخلف خلال المجموعة باستخدام عامل التشغيل for
- إزالة التعليقات
- احفظ التغييرات
كيفية استخراج كافة التعليقات
تعد طريقة get_child_nodes مفيدة جدًا ويمكنك استخدامها في كل مرة تحتاج فيها إلى الحصول على قائمة بعقد المستندات من أي نوع. لا تنشئ المجموعة الناتجة حملًا مباشرًا لأنه يتم تحديد العقد في هذه المجموعة فقط عند تعداد العناصر الموجودة فيها أو الوصول إليها.
يوضح مثال التعليمات البرمجية التالي كيفية استخراج اسم المؤلف والتاريخ والوقت والنص لجميع التعليقات في المستند:
كيفية استخراج تعليقات مؤلف محدد
بعد تحديد عقد Comment في المجموعة، كل ما عليك فعله هو استخراج المعلومات التي تحتاجها. في هذه العينة، يتم دمج الأحرف الأولى من اسم المؤلف والتاريخ والوقت والنص العادي للتعليق في سلسلة واحدة؛ يمكنك اختيار تخزينه بطرق أخرى بدلاً من ذلك.
الطريقة المثقلة التي تستخرج التعليقات من مؤلف معين هي نفسها تقريبًا، فهي تتحقق فقط من اسم المؤلف قبل إضافة المعلومات إلى المصفوفة.
يوضح مثال التعليمات البرمجية التالي كيفية استخراج اسم المؤلف وتاريخه ووقته ونص التعليقات بواسطة المؤلف المحدد:
كيفية إزالة التعليقات
إذا كنت تقوم بإزالة جميع التعليقات، فليست هناك حاجة للتنقل عبر المجموعة لحذف التعليقات واحدًا تلو الآخر؛ يمكنك إزالتها عن طريق الاتصال بـ clear في مجموعة التعليقات.
يوضح مثال التعليمات البرمجية التالي كيفية إزالة كافة التعليقات في المستند:
عندما تحتاج إلى إزالة التعليقات بشكل انتقائي، تصبح العملية أكثر تشابهًا مع الكود الذي استخدمناه لاستخراج التعليقات.
يوضح مثال التعليمات البرمجية التالي كيفية إزالة التعليقات بواسطة المؤلف المحدد:
النقطة الرئيسية التي يجب تسليط الضوء عليها هنا هي استخدام عامل التشغيل. على عكس الاستخراج البسيط، هنا تريد حذف تعليق. الحيلة المناسبة هي تكرار المجموعة بشكل عكسي من آخر Comment إلى الأول. والسبب في ذلك هو أنه إذا بدأت من النهاية وانتقلت للخلف، فسيظل فهرس العناصر السابقة دون تغيير، ويمكنك العودة إلى العنصر الأول في المجموعة.
يوضح مثال التعليمات البرمجية التالي طرق استخراج التعليقات وإزالتها:
كيفية إزالة تعليق بين CommentRangeStart وCommentRangeEnd
باستخدام Aspose.Words، يمكنك أيضًا إزالة التعليقات بين عقدتي CommentRangeStart وCommentRangeEnd.
يوضح مثال التعليمات البرمجية التالي كيفية إزالة النص بين CommentRangeStart وCommentRangeEnd:
# Open the document.
doc = aw.Document(docs_base.my_dir + "Comments.docx")
commentStart = doc.get_child(aw.NodeType.COMMENT_RANGE_START, 0, True).as_comment_range_start()
commentEnd = doc.get_child(aw.NodeType.COMMENT_RANGE_END, 0, True).as_comment_range_end()
currentNode = commentStart
isRemoving = True
while (currentNode != None and isRemoving) :
if (currentNode.node_type == aw.NodeType.COMMENT_RANGE_END) :
isRemoving = False
nextNode = currentNode.next_pre_order(doc)
currentNode.remove()
currentNode = nextNode
# Save the document.
doc.save(docs_base.artifacts_dir + "WorkingWithComments.remove_region_text.docx")
إضافة أو إزالة الرد على التعليق
تضيف طريقة add_reply ردًا على هذا التعليق. يرجى ملاحظة أنه نظرًا للقيود الحالية لمكتب Microsoft، يُسمح فقط بمستوى واحد من الردود في المستند. سيتم ظهور استثناء من النوع InvalidOperationException إذا تم استدعاء هذه الطريقة على تعليق الرد الموجود.
يمكنك استخدام طريقة remove_reply لإزالة الرد المحدد على هذا التعليق.
يوضح مثال التعليمات البرمجية التالي كيفية إضافة رد على التعليق وإزالة رد التعليق:
اقرأ رد التعليق
تقوم الخاصية replies بإرجاع مجموعة من كائنات Comment التي تعتبر أبناء مباشرين للتعليق المحدد.
يوضح مثال التعليمات البرمجية التالي كيفية تكرار ردود التعليقات وحلها: