Разделить PDF-файлы в Python

Эта страница показывает, как разделять PDF-файлы в Python с помощью Aspose.PDF for Python via .NET.

Используйте эти примеры, когда вам нужно разбить большой PDF на одностраничные файлы, равные части, группы фиксированного размера, пользовательские диапазоны страниц или наборы нечётных и чётных страниц для распространения, проверки или последующей обработки.

Пример онлайн-разделения PDF

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

Aspose Split PDF

Чтобы разбить страницы PDF на отдельные PDF‑файлы по одной странице в Python, выполните следующие действия:

  1. Перебрать страницы PDF‑документа через Документ объекта Коллекция страниц коллекция
  2. Для каждой итерации создайте новый объект Document и добавьте отдельный Страница объект в пустой документ
  3. Сохраните новый PDF, используя save() метод

Разделить PDF на несколько файлов в Python

Следующий фрагмент кода Python показывает, как разделить страницы PDF на отдельные PDF‑файлы.

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


def split_documents(infile, outdir):
    document = ap.Document(infile)
    for page_num in range(1, len(document.pages) + 1):
        with ap.Document() as new_document:
            new_document.pages.add(document.pages[page_num])
            new_document.save(path.join(outdir, f"Page_{page_num}.pdf"))

Разделить PDF на две равные части

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


def split_documents_into_two_parts(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)
    mid_point = total_pages // 2

    # First part
    with ap.Document(infile) as first_document:
        first_part_range = range(mid_point + 1, total_pages + 1)
        first_document.pages.delete(first_part_range)
        first_document.save(path.join(outdir, "Part_1.pdf"))

    # Second part
    with ap.Document(infile) as second_document:
        second_part_range = range(1, mid_point + 1)
        second_document.pages.delete(second_part_range)
        second_document.save(path.join(outdir, "Part_2.pdf"))

Разделить PDF на несколько файлов каждые N страниц

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

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


def split_documents_every_n_pages(infile, outdir, pages_per_part=3):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    part_index = 1
    for start_page in range(1, total_pages + 1, pages_per_part):
        end_page = min(start_page + pages_per_part - 1, total_pages)

        with ap.Document() as part_document:
            for page_num in range(start_page, end_page + 1):
                part_document.pages.add(document.pages[page_num])
            part_document.save(
                path.join(outdir, f"Every_{pages_per_part}_Part_{part_index}.pdf")
            )

        part_index += 1

Разделить PDF по пользовательским диапазонам страниц

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

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


def split_documents_by_page_ranges(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)
    # Define ranges as (start_page, end_page). Use None to indicate last page.
    ranges = [(1, 3), (4, 6), (7, None)]

    for index, (start_page, end_page) in enumerate(ranges, start=1):
        if start_page > total_pages:
            continue

        effective_end = total_pages if end_page is None else min(end_page, total_pages)
        if start_page > effective_end:
            continue

        with ap.Document() as range_document:
            for page_num in range(start_page, effective_end + 1):
                range_document.pages.add(document.pages[page_num])
            range_document.save(
                path.join(outdir, f"Range_{index}_{start_page}_to_{effective_end}.pdf")
            )

Разделить PDF на первую страницу и остальные страницы

Отделите первую страницу PDF‑документа от остальных страниц с помощью Aspose.PDF for Python.

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


def split_documents_first_page_and_rest(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    if total_pages == 0:
        return

    with ap.Document() as first_page_document:
        first_page_document.pages.add(document.pages[1])
        first_page_document.save(path.join(outdir, "First_Page.pdf"))

    if total_pages == 1:
        return

    with ap.Document() as remaining_pages_document:
        for page_num in range(2, total_pages + 1):
            remaining_pages_document.pages.add(document.pages[page_num])
        remaining_pages_document.save(path.join(outdir, "Remaining_Pages.pdf"))

Разделить PDF на последнюю страницу и предыдущие страницы

Извлеките последнюю страницу PDF‑документа и отделите её от оставшихся страниц, используя Aspose.PDF for Python.

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


def split_documents_last_page_and_rest(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    if total_pages == 0:
        return

    with ap.Document() as last_page_document:
        last_page_document.pages.add(document.pages[total_pages])
        last_page_document.save(path.join(outdir, "Last_Page.pdf"))

    if total_pages == 1:
        return

    document.pages.delete(total_pages)  # Remove last page from original document
    document.save(path.join(outdir, "Previous_Pages.pdf"))

Разделить PDF на три части

Разделите документ PDF на три отдельные части, используя Aspose.PDF for Python.

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


def split_documents_into_three_parts(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    if total_pages == 0:
        return

    part_size = max(1, (total_pages + 2) // 3)

    for part_index in range(3):
        start_page = part_index * part_size + 1
        end_page = min((part_index + 1) * part_size, total_pages)

        if start_page > total_pages:
            break

        with ap.Document() as part_document:
            for page_num in range(start_page, end_page + 1):
                part_document.pages.add(document.pages[page_num])
            part_document.save(path.join(outdir, f"Three_Parts_{part_index + 1}.pdf"))

Пользовательский разделитель страниц PDF

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

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


def split_documents_custom_page_groups(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)
    groups = [
        [1, 2, 5],
        [3, 4, 6, 7],
    ]

    for group_index, group in enumerate(groups, start=1):
        valid_pages = [page_num for page_num in group if 1 <= page_num <= total_pages]
        if not valid_pages:
            continue

        with ap.Document() as group_document:
            for page_num in valid_pages:
                group_document.pages.add(document.pages[page_num])
            group_document.save(path.join(outdir, f"Custom_Group_{group_index}.pdf"))

Разделить PDF на отдельные страницы со стабильными именами файлов

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

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


def split_documents_with_stable_filenames(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    for page_num in range(1, total_pages + 1):
        with ap.Document() as new_document:
            new_document.pages.add(document.pages[page_num])
            new_document.save(path.join(outdir, f"Page_{page_num:03d}.pdf"))

Разделить PDF на нечётные и чётные страницы

Разделите PDF‑документ на два отдельных файла, содержащих соответственно нечётные и чётные страницы, используя Aspose.PDF for Python.

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


def split_documents_odd_even_pages(infile, outdir):
    document = ap.Document(infile)
    total_pages = len(document.pages)

    # Odd pages document
    with ap.Document(infile) as document:
        with ap.Document() as odd_document:
            for page_num in range(1, total_pages + 1, 2):
                odd_document.pages.add(document.pages[page_num])
            odd_document.save(path.join(outdir, "Odd_Pages.pdf"))

        with ap.Document() as even_document:
            for page_num in range(2, total_pages + 1, 2):
                even_document.pages.add(document.pages[page_num])
            even_document.save(path.join(outdir, "Even_Pages.pdf"))

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