تشخیص تفاوت‌ها بین دو فایل 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")

SDKها از این مقادیر برای احراز هویت در مقابل سرویس‌های 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)

مرحله ۲: بارگذاری اسناد منبع و هدف

دو فایل 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")

مرحله ۳: تنظیم گزینه‌های مقایسه

سپس، CompareOptions را تنظیم کنید تا نحوه مقایسه متن در اسناد Word توسط SDK در 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 API انجام می‌دهند.

  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 را در Python با استفاده از Aspose.BarCode Cloud SDK for Python مقایسه کرد. با دنبال کردن مراحل تنظیم اعتبارنامه‌ها، بارگذاری فایل‌ها، پیکربندی گزینه‌های مقایسه و فراخوانی API مقایسه می‌توانید جریان کارهای تفاوت اسناد را در برنامه‌های خود خودکار کنید. به‌خاطر داشته باشید که برای استفاده در محیط تولید یک لایسنس مناسب دریافت کنید؛ یک لایسنس موقت در صفحه لایسنس موقت موجود است و جزئیات کامل لایسنس‌گذاری در صفحه محصول فهرست شده است. با این ابزارها، ادغام مقایسه اسناد در پروژه‌های Python شما ساده و قابل اطمینان می‌شود.

سوالات متداول

  • چگونه Aspose.BarCode Cloud SDK for Python به من کمک می‌کند تا متن در اسناد Word را در Python مقایسه کنم؟
    این SDK همراه با Aspose.Words Cloud SDK for Python کار می‌کند تا فایل‌های DOCX را بارگذاری کند، گزینه‌های مقایسه را تنظیم کند و نتیجه‌ای با ردیابی بازنگری تولید کند که تفاوت‌ها را برجسته می‌سازد. برای جزئیات، صفحه محصول Aspose.BarCode Cloud SDK for Python را ببینید.

  • آیا می‌توانم فایل‌های Word بزرگ را به‌صورت کارآمد مقایسه کنم؟
    بله. با استفاده از API compare_document می‌توانید فایل‌های DOCX بزرگ را از ذخیره‌سازی Aspose Cloud به‌صورت جریان (stream) بگیرید و سرویس آن‌ها را در سمت سرور پردازش می‌کند، که مصرف حافظه در ماشین شما را به حداقل می‌رساند. برای نکات عملکردی به مستندات رسمی مراجعه کنید.

  • چه فرمت‌های فایلی برای مقایسه پشتیبانی می‌شوند؟
    API عمدتاً با فایل‌های DOCX کار می‌کند، اما می‌توانید پس از تبدیل به DOCX، فایل‌های DOC را نیز با استفاده از Aspose.Words مقایسه کنید. تمام نام‌های فرمت با حروف بزرگ نوشته می‌شوند، به عنوان مثال، DOCX، PDF.

  • آیا برای اجرای این در محیط تولید به مجوز نیاز دارم؟
    یک مجوز موقت در صفحه مجوز موقت موجود است. برای استفاده در محیط تولید باید یک مجوز کامل خریداری کنید همان‌طور که در صفحه محصول توضیح داده شده است.

بیشتر بخوانید