Обрезать страницы PDF в Python
Получить свойства страниц
Каждая страница в PDF-файле имеет ряд свойств, таких как ширина, высота, поля обрезки, поля кадрирования и обрезки. Aspose.PDF для Python позволяет получить доступ к этим свойствам.
Используйте эту страницу, когда вам нужно уменьшить видимую область страницы, подготовить файлы для печати или проверить геометрию полей страницы в PDF-документах.
- media_box: Поле для медиафайлов — это самое большое поле страницы. Оно соответствует размеру страницы (например, A4, A5, US Letter и т. д.), выбранному при печати документа в PostScript или PDF. Другими словами, поле для медиафайлов определяет физический размер носителя, на котором отображается или печатается PDF-документ.
- bleed_box: Если документ имеет поля обрезки, PDF-файл также будет иметь поле обрезки. Поле обрезки — это количество цвета (или изображения), которое выходит за край страницы. Оно используется для того, чтобы при печати и обрезке документа («обрезании») чернила доходили до самого края страницы. Даже если страница обрезана неточно — слегка за пределами меток обрезки — белые края на странице не появятся.
- trim_box: Поле обрезки указывает окончательный размер документа после печати и обрезки.
- art_box: Поле для изображения — это рамка, нарисованная вокруг фактического содержимого страниц в ваших документах. Эта рамка используется при импорте PDF-документов в другие приложения.
- crop_box: Поле обрезки — это размер «страницы», в котором ваш PDF-документ отображается в Adobe Acrobat. В обычном режиме просмотра в Adobe Acrobat отображается только содержимое поля обрезки. Для подробного описания этих свойств см. спецификацию Adobe.PDF, в частности, раздел 10.10.1 «Границы страницы».
Обрежьте первую Page PDF-файла до определенной прямоугольной области с помощью Aspose.PDF для Python. Эта функция регулирует несколько блоков страницы — crop_box, trim_box, art_box и bleed_box — для обеспечения единообразного визуального результата. Обрезка может быть полезна для удаления ненужных полей или выделения определенной области страницы.
- Загрузите PDF как
Document(использоватьap.Document()). - Определите прямоугольник обрезки, используя
Rectangleс желаемыми координатами (в пунктах). - Установите
Page’scrop_box,trim_box,art_box, иbleed_boxк определённому прямоугольнику. - Сохраните изменённый
Documentв новый выходной файл.
import sys
import aspose.pdf as ap
from os import path
def crop_page(input_file_name, output_file_name):
document = ap.Document(input_file_name)
new_box = ap.Rectangle(200, 220, 2170, 1520, True)
document.pages[1].crop_box = new_box
document.pages[1].trim_box = new_box
document.pages[1].art_box = new_box
document.pages[1].bleed_box = new_box
document.save(output_file_name)
В этом примере мы использовали образец файла here. Изначально наша страница выглядит, как показано на рисунке 1.

После изменения страница будет выглядеть как на рисунке 2.

Обрезать страницу PDF на основе содержимого первого изображения
Обрезать первый Page динамически, исходя из границ первого найденного на странице изображения. Используя ImagePlacementAbsorber, скрипт определяет первое изображение и корректирует страницу crop_box соответствовать размерам изображения. Этот подход полезен, когда вы хотите сосредоточиться на конкретном визуальном контенте, а не на предопределённых координатах.
- Загрузите PDF как
Document. - Найдите изображения на первой странице с помощью
ImagePlacementAbsorber. - Проверьте наличие изображений:
- Сохраните изменённый
Documentв указанный выходной файл.
import sys
import aspose.pdf as ap
from os import path
def crop_page_by_content(input_file_name, output_file_name):
document = ap.Document(input_file_name)
# Find first image on first page using ImagePlacementAbsorber
absorber = ap.ImagePlacementAbsorber()
document.pages[1].accept(absorber)
if len(absorber.image_placements) > 0:
first_image = absorber.image_placements[1]
document.pages[1].crop_box = first_image.rectangle
else:
print("No images found on the first page")
document.save(output_file_name)