Изменить размер страницы PDF в Python

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

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

Установите размер страницы PDF на A4

В примере размер первой страницы PDF‑документа обновляется до стандартных размеров A4. Он также выводит размеры ограничителя страницы (CropBox, TrimBox, ArtBox, BleedBox, MediaBox) до и после изменения размера, чтобы вы могли проверить изменения.

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

  1. Получите доступ к первой Page из Document.
  2. Отобразить размеры уменьшеной страницы до изменения (CropBox, TrimBox, ArtBox, BleedBox, MediaBox).
  3. Примените размеры A4 (597.6 × 842.4 points) с помощью API страницы.
  4. Отобразить обновленные размеры уменьшеной страницы.
  5. Сохраните изменённый Document к указанному пути вывода.
import sys
import aspose.pdf as ap
from os import path

def set_page_size(input_file_name, output_file_name):
    document = ap.Document(input_file_name)
    # Get particular page
    page = document.pages[1]

    # Set the page size as A4 (8.3 x 11.7 in) and in Aspose.Pdf, 1 inch = 72 points
    # So A4 dimensions in points will be (597.6, 842.4) for portrait orientation
    print("Before set")
    print(f"CropBox: {page.crop_box.width} x {page.crop_box.height}")
    print(f"TrimBox: {page.trim_box.width} x {page.trim_box.height}")
    print(f"ArtBox: {page.art_box.width} x {page.art_box.height}")
    print(f"BleedBox: {page.bleed_box.width} x {page.bleed_box.height}")
    print(f"MediaBox: {page.media_box.width} x {page.media_box.height}")

    page.set_page_size(597.6, 842.4)
    print("After set")
    print(f"CropBox: {page.crop_box.width} x {page.crop_box.height}")
    print(f"TrimBox: {page.trim_box.width} x {page.trim_box.height}")
    print(f"ArtBox: {page.art_box.width} x {page.art_box.height}")
    print(f"BleedBox: {page.bleed_box.width} x {page.bleed_box.height}")
    print(f"MediaBox: {page.media_box.width} x {page.media_box.height}")

    # Save the updated document
    document.save(output_file_name)

Получение размер страницы PDF

Этот фрагмент кода читает PDF и получает размеры (ширину и высоту) первой страницы. Он использует Page API для извлечения границ страницы Rectangle и выводит его размер в консоль. Это полезно для просмотра макета страницы, проверки форматов или подготовки документов к дальнейшей обработке.

  1. Загрузите PDF как Document.
  2. Получите доступ к первой Page.
  3. Получите обрезанный прямоугольник страницы с помощью get_page_rect().
  4. Извлеките значения ширины и высоты.
  5. Выведите размеры страницы.
import sys
import aspose.pdf as ap
from os import path

def get_page_size(input_file_name, output_file_name):
    document = ap.Document(input_file_name)

    # Get particular page
    page = document.pages[1]
    rectangle = page.get_page_rect(True)
    print(f"{rectangle.width} : {rectangle.height}")

Получение размер страницы PDF до и после поворота

Получите размеры страницы PDF до и после применения поворота на 90°. Это демонстрирует, как поворот влияет на ширину и высоту и как использовать get_page_rect() с учётом или без учёта вращения.

  1. Откройте PDF как Document.
  2. Получите доступ к первой Page.
  3. Примените вращение на 90° используя page.rotate = ap.Rotation.ON90 (см. Rotation enum).
  4. Получите прямоугольник страницы без учета поворота с использованием get_page_rect(False) и выведите её ширину и высоту.
  5. Получите прямоугольник страницы с учётом поворота, используя get_page_rect(True) и выведите её ширину и высоту.
  6. Сравните, как изменяются размеры из‑за поворота.
import sys
import aspose.pdf as ap
from os import path

def get_page_size_rotation(input_file_name, output_file_name):
    document = ap.Document(input_file_name)
    # Get particular page
    page = document.pages[1]
    page.rotate = ap.Rotation.ON90
    rectangle = page.get_page_rect(False)
    print(f"{rectangle.width} : {rectangle.height}")
    rectangle = page.get_page_rect(True)
    print(f"{rectangle.width} : {rectangle.height}")

Связанные темы страницы