Как добавить или удалить страницы в PDF с помощью Python
Управление страницами PDF — будь то добавление новых страниц или удаление ненужных — является распространённой задачей в автоматизированной обработке документов. Python в сочетании с Spire.PDF для Python делает эти операции быстрыми, надежными и простыми в реализации.
В этом руководстве вы узнаете, как:
Вставить страницы в любое место в PDF
Удалить конкретную страницу
Автоматически обнаруживать и удалять пустые страницы
Установка необходимой библиотеки
Чтобы работать с PDF-файлами, установите Spire.PDF для Python :
pip install spire.pdf
Примечание: Для работы с PDF с менее чем 10 страницами доступна бесплатная версия, которую также можно установить через PyPI :
pip install spire.pdf.free
Затем импортируйте необходимые модули в ваш скрипт:
from spire.pdf.common
import * from spire.pdf import *
После установки вы готовы загружать, изменять и сохранять PDF-документы через Python .
Добавление новых страниц в PDF (в начале, в середине или в конце)
Добавление страниц — это обычная необходимость при подготовке отчетов , вставке титульной страницы или добавлении пустых страниц для заметок . Spire.PDF позволяет вам вставлять пустые страницы в любое место: в начале, середине или в конце документа.
Пример кода: Вставка страниц в конкретные позиции
from spire.pdf.common import *
from spire.pdf import *
# Создание объекта PdfDocument
doc = PdfDocument()
# Загрузка PDF-документа
doc.LoadFromFile("Input.pdf")
# Вставка пустой страницы в начале как первой страницы
doc.Pages.Insert(0)
# Вставка пустой страницы как второй страницы
doc.Pages.Insert(1)
# Добавление пустой страницы в конец документа
doc.Pages.Add(PdfPageSize.A4(), PdfMargins(0.0, 0.0))
# Сохранение результирующего документа
doc.SaveToFile("AddPages.pdf")
doc.Close()
Как это работает
Pages.Insert(index) вставляет пустую страницу в указанную позицию.
Pages.Add(size, margins) добавляет пустую страницу в конец PDF.
Индексы страниц начинаются с нуля:
0 → первая страница
1 → вторая страница и т.д.
Удаление конкретной страницы из PDF
Если ваш PDF содержит устаревший контент , образцы страниц или страницы, вставленные в процессе обработки, вы можете удалить их, используя их индекс.
Пример кода: Удаление страницы
from spire.pdf.common import *
from spire.pdf import *
# Создание объекта PdfDocument
doc = PdfDocument()
# Загрузка PDF-документа
doc.LoadFromFile("Input.pdf")
# Удаление второй страницы документа
doc.Pages.RemoveAt(1)
# Сохранение результирующего документа
doc.SaveToFile("DeletePage.pdf")
doc.Close()
Совет: Если вам нужно удалить несколько страниц, удаляйте их в порядке убывания, чтобы избежать смещения индексов.
Обнаружение и удаление пустых страниц в PDF
Пустые страницы часто появляются во время сканирования или пакетной конверсии . Spire.PDF предоставляет два полезных подхода:
Используйте page.IsBlank() — обнаруживает полностью пустые страницы.
Отрендерите страницу в изображение и проверьте данные пикселей — обнаруживает визуально пустые страницы, которые технически содержат невидимые объекты.
Ниже представлена комбинированная реализация.
Пример кода: Автоматическое удаление пустых страниц
import io
from spire.pdf import PdfDocument
from PIL import Image
# Пользовательская функция: Проверка, является ли изображение пустым (все пиксели белые)
defis_blank_image(image):
# Конвертирование в RGB-режим и получение пикселей
img = image.convert("RGB")
# Получение всех точек пикселей и проверка, все ли они белые
white_pixel = (255, 255, 255)
returnall(pixel == white_pixel for pixel in img.getdata())
# Загрузка PDF-документа
doc = PdfDocument()
doc.LoadFromFile("Input.pdf")
# Проход по каждой странице в обратном порядке, чтобы избежать проблем с индексами при удалении
for i inrange(doc.Pages.Count - 1, -1, -1):
page = doc.Pages[i]
# Проверка, является ли текущая страница полностью пустой
if page.IsBlank():
# Если она полностью пустая, удалить её из документа
doc.Pages.RemoveAt(i)
else:
# Конвертировать текущую страницу в изображение
with doc.SaveAsImage(i) as image_data:
image_bytes = image_data.ToArray()
pil_image = Image.open(io.BytesIO(image_bytes))
# Проверить, является ли изображение пустым
if is_blank_image(pil_image):
# Если это пустое изображение, удалить соответствующую страницу из документа
doc.Pages.RemoveAt(i)
# Сохранить результирующий PDF
doc.SaveToFile("RemoveBlankPages.pdf")
doc.Close()
Почему этот метод работает
IsBlank() обнаруживает истинные пустые страницы.
Рендеринг в изображение помогает обнаружить страницы, содержащие:
невидимый текст
пустые слои рисования
лишние объекты
Обработка в обратном порядке обеспечивает безопасное удаление без конфликтов индексов.
Резюме
Управление страницами PDF с помощью Python становится простым благодаря Spire.PDF для Python . В этом учебном руководстве вы узнали, как:
Вставить пустые страницы в любое место в PDF
Удалить конкретную страницу по индексу
Обнаружить пустые или визуально пустые страницы и удалить их
Эти техники являются необходимыми для создания автоматизированных рабочих процессов, очистки PDF-файлов и подготовки документов для печати или архивации .

Программирование на python
944 поста12K подписчика
Правила сообщества
Публиковать могут пользователи с любым рейтингом. Однако!
Приветствуется:
• уважение к читателям и авторам
• конструктивность комментариев
• простота и информативность повествования
• тег python2 или python3, если актуально
• код публиковать в виде цитаты, либо ссылкой на специализированный сайт
Не рекомендуется:
• допускать оскорбления и провокации
• распространять вредоносное ПО
• просить решить вашу полноценную задачу за вас
• нарушать правила Пикабу