مرور کلی

ادغام اسناد Word یک نیاز رایج در بسیاری از برنامه‌ها است، چه برای ترکیب گزارش‌ها، تجمیع اطلاعات، یا صرفاً ساده‌سازی مدیریت اسناد. در این مقاله، نحوه ادغام فایل‌های DOCX با استفاده از Python و کتابخانه GroupDocs.Merger را بررسی می‌کنیم. این کتابخانه قدرتمند به توسعه‌دهندگان امکان می‌دهد اسناد Word را به‌صورت برنامه‌نویسی دستکاری کنند و در عین حال عملکرد بالا و دقت را تضمین کنند.

این راهنما شامل موارد زیر است:

چگونگی ترکیب چندین فایل DOCX

ادغام چندین فایل DOCX با کتابخانه GroupDocs.Merger به‌راحتی انجام می‌شود. در ادامه، گام‌های کلیدی این فرآیند را شرح می‌دهیم:

  1. وارد کردن بسته GroupDocs.Merger: ابتدا کتابخانه مورد نیاز را ایمپورت کنید.
  2. ایجاد یک نمونه Merger: کلاس Merger را با مسیر اولین فایل DOCX مقداردهی کنید.
  3. پیوستن اسناد اضافی: از متد join برای افزودن سایر فایل‌های DOCX که می‌خواهید ترکیب کنید، استفاده کنید.
  4. ذخیره سند ترکیبی: در نهایت، متد save را فراخوانی کنید تا سند ترکیبی در مسیر خروجی مشخص شده ذخیره شود.

در اینجا یک قطعه کد Python برای نمایش این گام‌ها آورده شده است:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Basic Usage] # MultipleDocumentOperations # Merge : Docx")

    # Step 1: Create a Merger object with the first document
    with gm.Merger(constants.sample_docx) as merger:
        print(f"Document info retrieved successfully")
        
        # Step 2: Join another DOCX file to merge
        merger.join(constants.sample_docx)
        
        # Step 3: Save the merged document
        merger.save(constants.output_docx)
        print(f"Merge to: {constants.output_docx}")
    
    print(f"----------------------------------------------------------------------------")

ترکیب اسناد DOCX بدون شکست بخش

گاهی اوقات، برای ترکیب اسناد نیاز است محتوا بدون افزودن شکست بخش (section break) ترکیب شود. این کار می‌تواند جریان اطلاعات را در اسناد ترکیبی حفظ کند.

  1. ایجاد یک نمونه Merger: همانند قبل، کلاس Merger را مقداردهی کنید.
  2. تنظیم گزینه‌های ترکیب: WordJoinOptions را تعریف کنید و mode را روی DISABLE_SECTION_BREAKS تنظیم کنید.
  3. پیوستن اسناد: سند اضافی را برای ترکیب اضافه کنید.
  4. ذخیره نتیجه: خروجی نهایی را در یک فایل DOCX جدید بنویسید.

نمونه کد:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithoutSectionBreaks")

    # Step 1: Create a Merger object with the source document
    with gm.Merger(constants.sample_doc) as merger:
        print(f"Document info retrieved successfully")
        
        # Step 2: Define Word join options to disable section breaks
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.mode = gm.domain.options.WordJoinMode.DISABLE_SECTION_BREAKS
        
        # Step 3: Join the document without section breaks
        merger.join(constants.sample_doc, word_join_options)
        
        # Step 4: Save the merged document
        merger.save(constants.output_doc_without_section_breaks)
        print(f"Merge to: {constants.output_doc_without_section_breaks}")
    
    print(f"----------------------------------------------------------------------------")

ترکیب اسناد DOCX با حالت‌های انطباق پیش‌تعریف‌شده

برای موارد خاص، ممکن است نیاز باشد اسناد با استانداردهای خاصی سازگار باشند. GroupDocs.Merger امکان ترکیب اسناد با حالت‌های انطباق پیش‌تعریف‌شده را فراهم می‌کند تا خروجی مثلاً با استانداردهای ISO مطابقت داشته باشد.

  1. ایجاد یک نمونه Merger: کلاس Merger را با سند پایه مقداردهی کنید.
  2. تنظیم حالت انطباق: یک شیء WordJoinOptions ایجاد کنید و ویژگی compliance را تنظیم کنید.
  3. پیوستن اسناد: سند اضافی را با استفاده از متد join اضافه کنید.
  4. ذخیره سند نهایی: آن را در مسیر خروجی دلخواه ذخیره کنید.

کد مربوطه:

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithPredefinedComplianceMode")

    # Step 1: Create a Merger object with the document
    with gm.Merger(constants.sample_docx) as merger:
        print(f"Document info retrieved successfully")
        
        # Step 2: Define Word join options with predefined compliance mode
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT
        
        # Step 3: Join another document with compliance mode
        merger.join(constants.sample_docx, word_join_options)
        
        # Step 4: Save the merged document
        merger.save(constants.output_docx_with_predefined_compliance_mode)
        print(f"Merge to: {constants.output_docx_with_predefined_compliance_mode}")
    
    print(f"----------------------------------------------------------------------------")

چگونگی ترکیب DOCX از جریان‌ها

همچنین می‌توانید فایل‌های DOCX را از جریان‌های حافظه (in‑memory streams) ترکیب کنید؛ این روش زمانی مفید است که با اسنادی که به‌صورت پویا تولید می‌شوند، کار می‌کنید.

  1. دریافت یک جریان فایل: سند خود را در حالت باینری باز کنید تا جریان به‌دست آید.
  2. ایجاد نمونه Merger: کلاس Merger را با استفاده از این جریان مقداردهی کنید.
  3. انجام عملیات ترکیب: به‌موقع نیاز ترکیب کنید و خروجی را ذخیره کنید.

نمونه پیاده‌سازی:

from turtle import update
import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Advanced Usage] # Loading # LoadDocumentFromStream")

    # Step 1: Get the document stream
    stream = get_file_stream()
    
    # Step 2: Create a Merger instance using the stream
    with gm.Merger(stream) as merger:
        print(f"Document loaded from stream successfully")
    
    print(f"----------------------------------------------------------------------------")

def get_file_stream():
    file_path = constants.sample_docx
    return open(file_path, "rb")

همچنین ببینید

برای جزئیات بیشتر می‌توانید به منابع زیر مراجعه کنید:

همچنین می‌توانید نسخه آزمایشی رایگان را از releases.groupdocs.com دانلود کنید و برای امتحان کتابخانه بدون محدودیت، لایسنس موقت را از Purchase Temporary License دریافت کنید.

مثال‌های کد

در ادامه چند مثال دیگر برای درک بهتر فرآیند ترکیب با کتابخانه GroupDocs.Merger برای Python آورده شده است:

ترکیب اسناد Word بدون شروع از صفحه جدید

این مثال نشان می‌دهد چگونه اسناد را به‌گونه‌ای ترکیب کنید که صفحه آخر سند اول مستقیماً توسط صفحه اول سند بعدی دنبال شود، بدون افزودن صفحه جدید بین آن‌ها.

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Basic Usage] # MultipleDocumentOperations # Merge # Word : MergeWordDocumentsWithoutStartingFromNewPage")

    # Step 1: Create a Merger object with the document
    with gm.Merger(constants.sample_doc) as merger:
        print(f"Document info retrieved successfully")
        
        # Step 2: Define Word join options for continuous mode
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.mode = gm.domain.options.WordJoinMode.CONTINUOUS
        
        # Step 3: Join documents without inserting new page
        merger.join(constants.sample_doc, word_join_options)
        
        # Step 4: Save the merged document
        merger.save(constants.output_doc_without_starting_from_new_page)
        print(f"Merge to: {constants.output_doc_without_starting_from_new_page}")
    
    print(f"----------------------------------------------------------------------------")

ترکیب چندین سند با گزینه‌های ترکیب سفارشی

در این مثال نحوه ترکیب اسناد DOCX با تنظیم گزینه‌های ترکیب خاص، مانند انطباق با یک استاندارد ISO خاص، نشان داده شده است.

import groupdocs.merger as gm
import constants

def run():
    print(f"----------------------------------------------------------------------------")
    print(f"[Example Advanced Usage] # Merge with Custom Join Options")

    # Step 1: Create a Merger object with the base document
    with gm.Merger(constants.sample_docx) as merger:
        print(f"Document info retrieved successfully")
        
        # Step 2: Set custom join options for predefined compliance mode
        word_join_options = gm.domain.options.WordJoinOptions()
        word_join_options.compliance = gm.domain.options.WordJoinCompliance.ISO_29500_2008_STRICT
        
        # Step 3: Join another document with compliance settings
        merger.join(constants.sample_docx, word_join_options)
        
        # Step 4: Save the merged document
        merger.save(constants.output_docx_with_predefined_compliance_mode)
        print(f"Merge to: {constants.output_docx_with_predefined_compliance_mode}")
    
    print(f"----------------------------------------------------------------------------")

همچنین ببینید

برای کشف بیشتر درباره GroupDocs.Merger و قابلیت‌های آن می‌توانید به منابع زیر سر بزنید:

نسخه آزمایشی رایگان و لایسنس موقت

می‌توانید نسخه آزمایشی رایگان GroupDocs.Merger را از صفحه انتشار ما دانلود کنید. علاوه بر این، می‌توانید برای مقاصد ارزیابی، لایسنس موقت را از Purchase Temporary License دریافت کنید. این لایسنس موقت به شما اجازه می‌دهد کتابخانه را بدون هیچ محدودیتی امتحان کنید و قابلیت‌های آن را به‌طور کامل ارزیابی نمایید.