الكشف عن الاختلافات بين ملفي Word هو حاجة متكررة للمطورين الذين يتعاملون مع العقود أو التقارير أو المستندات القانونية. يوفر Aspose.BarCode Cloud SDK for Python مكتبة قوية يمكن دمجها مع Aspose.Words Cloud SDK for Python لمقارنة النص في مستندات Word برمجياً باستخدام Python. في هذا الدليل ستقوم بإعداد بيئتك، تحميل المستندات إلى تخزين Aspose Cloud، تكوين خيارات المقارنة، تشغيل المقارنة، واسترجاع المستند الناتج مع التغييرات المتتبعة. ستشاهد أيضاً كيفية تحقيق النتيجة نفسها باستخدام استدعاءات REST مباشرة مع cURL.

تحضير البيئة - المتطلبات والإعداد

قبل أن تبدأ، تأكد من أن لديك ما يلي:

  • Python 3.8 أو أحدث مثبت محليًا.
  • حساب Aspose Cloud مع client_id و client_secret (متاح في لوحة تحكم Aspose Cloud).
  • الوصول إلى تخزين Aspose Cloud للتعامل مع الملفات المؤقتة.

قم بتثبيت BarCode SDK عبر pip:

pip install aspose-barcode-cloud

ستحتاج أيضًا إلى Aspose.Words Cloud SDK for Python، الذي يتعامل مع عمليات Word‑المحددة:

pip install asposewordscloud

قم بتعيين بيانات الاعتماد الخاصة بك كمتغيّرات بيئية أو استبدل العناصر النائبة في الشيفرة:

import os
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")

ستستخدم SDKs هذه القيم للمصادقة ضد خدمات Aspose Cloud. بمجرد أن تصبح البيئة جاهزة، يمكننا الانتقال إلى التنفيذ.

مقارنة النص في مستندات Word باستخدام Python: دليل خطوة بخطوة

الخطوة 1: تحميل المستند المصدر

أولاً، قم بتكوين بيانات اعتماد Aspose Cloud الخاصة بك حتى يتمكن SDK من المصادقة ويمكنك مقارنة النص في مستندات Word باستخدام Python.

from asposewordscloud import WordsApi, Configuration

config = Configuration(client_id=client_id, client_secret=client_secret)
words_api = WordsApi(config)

الخطوة 2: تحميل المستندات المصدر والهدف

حمّل ملفي DOCX اللذين تريد مقارنتهما. تقوم الدالة المساعدة بتجريد عملية التحميل.

def upload(local_file, remote_name):
    with open(local_file, "rb") as f:
        words_api.upload_file(request={"path": f"TempCompare/{remote_name}", "file": f})

upload("doc1.docx", "doc1.docx")
upload("doc2.docx", "doc2.docx")

الخطوة 3: تعيين خيارات المقارنة

بعد ذلك، قم بتعيين CompareOptions لتحديد كيفية مقارنة SDK للنص في مستندات Word في Python، مثل تجاهل حالة الأحرف أو التعليقات.

from asposewordscloud.models import CompareOptions

compare_opts = CompareOptions(
    author="PythonComparer",
    compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
    file_path="TempCompare/doc2.docx",
    revision_author="PythonComparer",
    revision_date_time="2023-01-01T00:00:00Z"
)

الخطوة 4: تنفيذ مقارنة المستندات

الآن استدعِ طريقة compare_document لمقارنة النص فعليًا في مستندات Word باستخدام Python وإنشاء نتيجة تتبع التعديلات.

compare_result = words_api.compare_document(
    request={
        "name": "doc1.docx",
        "compare_data": compare_opts,
        "folder": "TempCompare"
    }
)

الخطوة 5: استرجاع وحفظ النتيجة

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

with open("compare_result.docx", "wb") as out_file:
    out_file.write(compare_result.document)

words_api.delete_file(request={"path": "TempCompare/doc1.docx"})
words_api.delete_file(request={"path": "TempCompare/doc2.docx"})

مقارنة النص في مستندات Word باستخدام Python - تنفيذ كامل - مثال كامل للكود

الكود التالي يوضح سير العمل الكامل لمقارنة النص في مستندات Word باستخدام بايثون و Aspose APIs.

import os
from asposewordscloud import WordsApi, Configuration
from asposewordscloud.models import CompareOptions

# ----------------------------------------------------------------------
# Configuration – set your Aspose Cloud credentials in environment variables
# ----------------------------------------------------------------------
client_id = os.getenv("ASPOSE_CLIENT_ID")
client_secret = os.getenv("ASPOSE_CLIENT_SECRET")
config = Configuration(client_id=client_id, client_secret=client_secret)

# ----------------------------------------------------------------------
# Initialize the Words API client
# ----------------------------------------------------------------------
words_api = WordsApi(config)

# ----------------------------------------------------------------------
# Local file paths (replace with your actual files)
# ----------------------------------------------------------------------
source_path = "doc1.docx"
target_path = "doc2.docx"
result_path = "compare_result.docx"

# ----------------------------------------------------------------------
# Remote folder in Aspose Cloud storage where temporary files are kept
# ----------------------------------------------------------------------
remote_folder = "TempCompare"

# ----------------------------------------------------------------------
# Helper to upload a local file to Aspose Cloud storage
# ----------------------------------------------------------------------
def upload(local_file, remote_name):
    with open(local_file, "rb") as f:
        words_api.upload_file(request={"path": f"{remote_folder}/{remote_name}", "file": f})

# ----------------------------------------------------------------------
# Upload source and target documents
# ----------------------------------------------------------------------
upload(source_path, source_path)
upload(target_path, target_path)

# ----------------------------------------------------------------------
# Set up comparison options
# ----------------------------------------------------------------------
compare_opts = CompareOptions(
    author="PythonComparer",
    compare_options="IgnoreCase,IgnoreComments,IgnoreFormatting",
    file_path=f"{remote_folder}/{target_path}",
    revision_author="PythonComparer",
    revision_date_time="2023-01-01T00:00:00Z"
)

# ----------------------------------------------------------------------
# Perform the comparison
# ----------------------------------------------------------------------
try:
    compare_result = words_api.compare_document(
        request={
            "name": source_path,
            "compare_data": compare_opts,
            "folder": remote_folder
        }
    )
    # The API returns the resulting document as a byte array
    with open(result_path, "wb") as out_file:
        out_file.write(compare_result.document)
finally:
    # ------------------------------------------------------------------
    # Clean up remote temporary files
    # ------------------------------------------------------------------
    words_api.delete_file(request={"path": f"{remote_folder}/{source_path}"})
    words_api.delete_file(request={"path": f"{remote_folder}/{target_path}"})

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

إجراء مقارنة المستندات عبر REST API باستخدام cURL

فيما يلي أوامر cURL التي تقوم بنفس مقارنة النص في مستندات Word في عملية Python عبر واجهة برمجة التطبيقات REST.

  1. المصادقة والحصول على رمز الوصول
curl -X POST "https://api.aspose.cloud/connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. تحميل ملف المصدر
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc1.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@doc1.docx"
  1. تحميل الملف الهدف
curl -X PUT "https://api.aspose.cloud/v4.0/words/TempCompare/doc2.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary "@doc2.docx"
  1. تنفيذ المقارنة
curl -X POST "https://api.aspose.cloud/v4.0/words/doc1.docx/compare" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "compareOptions": {
            "author": "PythonComparer",
            "compareOptions": "IgnoreCase,IgnoreComments,IgnoreFormatting",
            "filePath": "TempCompare/doc2.docx",
            "revisionAuthor": "PythonComparer",
            "revisionDateTime": "2023-01-01T00:00:00Z"
        }
      }' -o compare_result.docx
  1. تحميل ملف الإخراج
curl -X GET "https://api.aspose.cloud/v4.0/words/TempCompare/compare_result.docx" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -o compare_result.docx

لمزيد من التفاصيل حول أجسام الطلب والمعلمات الإضافية، راجع وثائق API الرسمية.

الخلاصة

توضح هذه المقالة كيفية مقارنة النص في مستندات Word باستخدام بايثون عبر Aspose.BarCode Cloud SDK for Python. باتباع الخطوات لإعداد الاعتمادات، وتحميل الملفات، وتكوين خيارات المقارنة، واستدعاء واجهة برمجة تطبيقات المقارنة، يمكنك أتمتة سير عمل اختلاف المستندات في تطبيقاتك. تذكر الحصول على ترخيص مناسب للاستخدام الإنتاجي؛ يتوفر ترخيص مؤقت على صفحة الترخيص المؤقت، وتفاصيل الترخيص الكامل مدرجة في صفحة المنتج. باستخدام هذه الأدوات، يصبح دمج مقارنة المستندات في مشاريع بايثون الخاصة بك أمرًا بسيطًا وموثوقًا.

الأسئلة المتكررة

  • كيف يساعدني Aspose.BarCode Cloud SDK for Python في مقارنة النص في مستندات Word باستخدام Python؟
    يعمل SDK بالتعاون مع Aspose.Words Cloud SDK for Python لتحميل ملفات DOCX، وضبط خيارات المقارنة، وإنشاء نتيجة متتبعة بالمراجعات تُبرز الاختلافات. راجع صفحة المنتج Aspose.BarCode Cloud SDK for Python للحصول على التفاصيل.

  • هل يمكنني مقارنة ملفات Word الكبيرة بكفاءة؟
    نعم. باستخدام واجهة برمجة التطبيقات compare_document يمكنك بث ملفات DOCX الكبيرة من تخزين Aspose Cloud، وتقوم الخدمة بمعالجتها على جانب الخادم، مما يقلل من استهلاك الذاكرة على جهازك. راجع التوثيق الرسمي للحصول على نصائح الأداء.

  • ما هي تنسيقات الملفات المدعومة للمقارنة؟
    تعمل الواجهة البرمجية أساسًا مع ملفات DOCX، ولكن يمكنك أيضًا مقارنة ملفات DOC بعد تحويلها إلى DOCX باستخدام Aspose.Words. جميع أسماء التنسيقات مكتوبة بأحرف كبيرة، مثل DOCX، PDF.

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

اقرأ المزيد