Объединить PDF-файлы в Python

Объединение или совместить несколько PDF в один PDF на Python

Объединение PDF‑файлов — очень популярный запрос среди пользователей. Это может быть полезно, когда у вас есть несколько PDF‑файлов, которые вы хотите объединить или хранить вместе как один документ.

Объединение PDF‑файлов может помочь вам упорядочить документы, освободить место для хранения на вашем ПК и поделиться несколькими PDF‑файлами с другими, объединив их в один документ.

Объединение PDF в Python через .NET не является простой задачей без использования сторонней библиотеки. В этой статье показано, как объединить несколько PDF-файлов в один PDF‑документ с помощью Aspose.PDF for Python via .NET.

Объединение PDF-файлов с помощью Python и DOM

Для объединения двух PDF файлов:

  1. Создайте новый документ.
  2. Объедините PDF‑файлы
  3. Сохраните объединённый документ

Объединение нескольких PDF‑документов в один файл:

import sys
import aspose.pdf as ap
from os import path


def merge_two_documents(infile1, infile2, outfile):
    document1 = ap.Document(infile1)
    document2 = ap.Document(infile2)
    document1.pages.add(document2.pages)
    document1.save(outfile)

Добавление диапазон страниц из одного PDF в другой

Скопировать и добавить определённый диапазон страниц из исходного PDF‑документа в целевой PDF‑документ с использованием Aspose.PDF for Python.

  1. Откройте PDF‑файлы, используя класс Document.
  2. Проверьте, есть ли у исходного документа страницы.
  3. Проверьте диапазон страниц.
  4. Пропустите операцию, если начальная страница больше конечной страницы.
  5. Итерируйте диапазон страниц.
  6. Добавьте страницы к целевому документу.
import sys
import aspose.pdf as ap
from os import path


def _append_page_range(source_document, destination_document, start_page, end_page):
    total_pages = len(source_document.pages)
    if total_pages == 0:
        return

    start = max(1, start_page)
    end = min(end_page, total_pages)
    if start > end:
        return

    for page_number in range(start, end + 1):
        destination_document.pages.add(source_document.pages[page_number])

Объединение несколько PDF‑документов в один

Этот фрагмент кода объясняет, как объединить несколько PDF‑файлов в один документ:

  1. Создайте пустой выходной документ.
  2. Переберите входные файлы.
  3. Загрузите каждый исходный документ.
  4. Определите диапазон страниц.
  5. Добавьте страницы к выходному документу.
  6. Повторите для всех документов.
  7. Сохраните объединенный PDF.
import sys
import aspose.pdf as ap
from os import path


def merge_multiple_documents(input_files, outfile):
    output_document = ap.Document()

    for input_file in input_files:
        source_document = ap.Document(input_file)
        _append_page_range(
            source_document, output_document, 1, len(source_document.pages)
        )

    output_document.save(outfile)

Объединение выбранные диапазоны страниц из нескольких PDF

  1. Загрузите исходные PDF‑документы.
  2. Создайте выходной документ.
  3. Определите диапазоны страниц для каждого документа.
  4. Добавьте страницы из первого документа.
  5. Добавьте страницы из второго документа.
  6. Объедините страницы в нужном порядке.
  7. Сохраните объединенный PDF.
import sys
import aspose.pdf as ap
from os import path


def merge_selected_page_ranges(infile1, infile2, outfile):
    document1 = ap.Document(infile1)
    document2 = ap.Document(infile2)
    output_document = ap.Document()

    _append_page_range(document1, output_document, 1, 2)
    _append_page_range(document2, output_document, 2, 3)

    output_document.save(outfile)

Вставка один PDF в другой в определённой позиции

  1. Загрузите базу и вставьте документы.
  2. Создайте выходной документ.
  3. Определите общее количество страниц в базовом документе.
  4. Проверьте индекс вставки.
  5. Добавьте страницы перед точкой вставки.
  6. Добавьте все страницы из вставляемого документа.
  7. Добавьте оставшиеся страницы из базового документа.
  8. Сохраните полученный PDF.
import sys
import aspose.pdf as ap
from os import path


def merge_insert_document_at_position(infile1, infile2, insert_after_page, outfile):
    base_document = ap.Document(infile1)
    insert_document = ap.Document(infile2)
    output_document = ap.Document()

    base_total_pages = len(base_document.pages)
    insert_index = max(0, min(insert_after_page, base_total_pages))

    _append_page_range(base_document, output_document, 1, insert_index)
    _append_page_range(insert_document, output_document, 1, len(insert_document.pages))
    _append_page_range(
        base_document, output_document, insert_index + 1, base_total_pages
    )

    output_document.save(outfile)

Объединение PDF‑файлы, чередуя страницы

В этом примере демонстрируется, как объединить два PDF‑документа, чередуя их страницы, используя Aspose.PDF for Python.

  1. Загрузите входные PDF‑документы.
  2. Создайте выходной документ.
  3. Получите количество страниц в каждом документе.
  4. Вычислите максимальное количество страниц.
  5. Переберите номера страниц.
  6. Добавляйте страницы попеременно.
  7. Обработайте неравное количество страниц.
  8. Сохраните объединенный PDF.
import sys
import aspose.pdf as ap
from os import path


def merge_alternating_pages(infile1, infile2, outfile):
    document1 = ap.Document(infile1)
    document2 = ap.Document(infile2)
    output_document = ap.Document()

    document1_pages = len(document1.pages)
    document2_pages = len(document2.pages)
    max_pages = max(document1_pages, document2_pages)

    for page_number in range(1, max_pages + 1):
        if page_number <= document1_pages:
            output_document.pages.add(document1.pages[page_number])
        if page_number <= document2_pages:
            output_document.pages.add(document2.pages[page_number])

    output_document.save(outfile)

Объединение PDF-файлы с разделителями секций и закладками

Объедините несколько PDF‑документов в один файл со структурированными разделами и навигационными закладками, используя Aspose.PDF for Python.

  1. Создайте выходной документ.
  2. Переберите входные файлы.
  3. Загрузите исходный документ.
  4. Добавьте страницу-разделитель.
  5. Создайте закладку раздела.
  6. Добавьте страницы исходного документа.
  7. Отслеживайте первую страницу контента.
  8. Добавьте вложенную закладку контента (по желанию).
  9. Повторите для всех документов.
  10. Сохраните объединенный PDF.
import sys
import aspose.pdf as ap
from os import path


def merge_with_section_separators_and_bookmarks(input_files, outfile):
    output_document = ap.Document()

    for section_index, input_file in enumerate(input_files, start=1):
        source_document = ap.Document(input_file)
        source_page_count = len(source_document.pages)

        separator_page = output_document.pages.add()
        separator_page.paragraphs.add(
            ap.text.TextFragment(
                f"Section {section_index}: {path.basename(input_file)}"
            )
        )

        section_bookmark = ap.OutlineItemCollection(output_document.outlines)
        section_bookmark.title = f"Section {section_index}"
        section_bookmark.action = ap.annotations.GoToAction(separator_page)
        output_document.outlines.append(section_bookmark)

        first_content_page_number = len(output_document.pages) + 1
        _append_page_range(source_document, output_document, 1, source_page_count)

        if source_page_count > 0 and first_content_page_number <= len(
            output_document.pages
        ):
            content_bookmark = ap.OutlineItemCollection(output_document.outlines)
            content_bookmark.title = f"Section {section_index} Content"
            content_bookmark.action = ap.annotations.GoToAction(
                output_document.pages[first_content_page_number]
            )
            section_bookmark.append(content_bookmark)

    output_document.save(outfile)

Рабочий пример

Aspose.PDF Merger это онлайн бесплатное веб‑приложение, которое позволяет исследовать, как работает функция объединения презентаций.

Aspose.PDF Merger

Связанные темы документа