Получить и установить свойства страниц PDF в Python

Aspose.PDF for Python via .NET позволяет читать и устанавливать свойства страниц в PDF‑файле в ваших Python‑приложениях. В этом разделе показано, как получить количество страниц в PDF‑файле, получить информацию о свойствах страниц PDF, таких как цвет, и установить свойства страниц. Примеры используют the Document и PageCollection API и написаны на Python.

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

Получить количество страниц в PDF‑файле

При работе с документами часто хочется знать, сколько страниц они содержат. С Aspose.PDF это занимает не более двух строк кода.

Чтобы получить количество страниц в PDF‑файле:

  1. Откройте PDF‑файл, используя Document класс.
  2. Затем используйте PageCollection свойство Count коллекции (из объекта Document), чтобы получить общее количество страниц в документе.

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

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

def get_page_count(input_file_name):
    # Open document
    document = ap.Document(input_file_name)

    # Get page count
    print("Page Count:", str(len(document.pages)))

Получить количество страниц без сохранения документа

Иногда мы генерируем PDF‑файлы «на лету», и во время создания PDF‑файла мы можем столкнуться с требованием (создание оглавления и т.д.) получить количество страниц PDF‑файла без сохранения файла в системе или потоке. Поэтому, чтобы удовлетворить это требование, метод process_paragraphs() было введено в классе Document. Пожалуйста, ознакомьтесь со следующим фрагментом кода, который показывает шаги для получения количества страниц без сохранения документа.

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

def get_page_count_without_saving(input_file_name):
    # Instantiate Document instance
    document = ap.Document()
    # Add page to pages collection of PDF file
    page = document.pages.add()
    # Create loop instance
    for _ in range(0, 300):
        # Add TextFragment to paragraphs collection of page object
        page.paragraphs.add(ap.text.TextFragment("Pages count test"))
    # Process the paragraphs in PDF file to get accurate page count
    document.process_paragraphs()
    # Print number of pages in document
    print("Number of pages in document =", str(len(document.pages)))

Получить свойства страниц

Каждая страница в файле PDF имеет ряд свойств, таких как ширина, высота, bleed-, crop- и trimbox. Aspose.PDF позволяет получить доступ к этим свойствам.

Понимание свойств страниц: различия между Artbox, BleedBox, CropBox, MediaBox, TrimBox и свойством Rect

  • Media box: Media box — это самая большая область страницы. Она соответствует размеру страницы (например A4, A5, US Letter и т.д.), выбранному при печати документа в PostScript или PDF. Другими словами, media box определяет физический размер носителя, на котором отображается или печатается PDF‑документ.
  • Bleed box: Если у документа есть вылет, PDF также будет иметь bleed box. Вылет — это количество цвета (или художественного оформления), которое выходит за пределы края страницы. Он используется, чтобы обеспечить, что при печати документа и подрезке до нужного размера (“trimmed”), краска дойдёт до самого края страницы. Даже если страница обрезана с ошибкой — немного смещена от линий обрезки — белые края не появятся на странице.
  • Trim box: Trim box указывает окончательный размер документа после печати и обрезки.
  • Art box: Art box — это рамка, обводящая фактическое содержание страниц вашего документа. Этот тип коробки страницы используется при импорте PDF‑документов в другие приложения.
  • Crop box: Crop box — это размер «page», при котором ваш PDF‑документ отображается в Adobe Acrobat. В обычном режиме отображается только содержимое crop box в Adobe Acrobat. Для подробного описания этих свойств читайте спецификацию Adobe.Pdf, в частности раздел 10.10.1 Page Boundaries. – Page.Rect: пересечение (обычно видимый прямоугольник) MediaBox и DropBox (Page.rect). См. Rectangle тип для свойств прямоугольника. Ниже изображение иллюстрирует эти свойства.

Для получения дополнительной информации, пожалуйста, посетите this page.

Доступ к свойствам страницы

Эта Page класс предоставляет все свойства, связанные с конкретной страницей PDF. Все страницы PDF‑файлов находятся в Document объекта PageCollection коллекция.

Оттуда можно получить доступ к отдельному Page объекты, используя их индекс, или перебрать коллекцию, чтобы получить все страницы. Как только отдельная страница будет доступна, мы можем получить её свойства. Следующий фрагмент кода показывает, как получить свойства страницы (the Page API).

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

def get_page_properties(input_file_name):
    # Open document
    document = ap.Document(input_file_name)
    # Get particular page
    page = document.pages[1]

    # Get page properties
    boxes = {
        "ArtBox": page.art_box,
        "BleedBox": page.bleed_box,
        "CropBox": page.crop_box,
        "MediaBox": page.media_box,
        "TrimBox": page.trim_box,
        "Rect": page.rect,
    }

    # Print box properties
    for box_name, box in boxes.items():
        print(
            f"{box_name} : Height={box.height},Width={box.width},LLX={box.llx},LLY={box.lly},URX={box.urx},URY={box.ury}"
        )

    # Print other page properties
    print(f"Page Number : {page.number}")
    print(f"Rotate : {page.rotate}")

Определить цвет страницы

Эта Page class предоставляет свойства, связанные с конкретной страницей PDF‑документа, включая тип цвета — RGB, чёрно‑белый, градации серого или неопределённый — который использует страница.

Все страницы PDF‑файлов находятся в PageCollection коллекция. Эта color_type property указывает цвет элементов на странице. Чтобы получить или определить информацию о цвете для конкретной страницы PDF, используйте the Page объекта color_type property.

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

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

def get_page_color_type(input_file_name):
    # Open source PDF file
    document = ap.Document(input_file_name)
    # Iterate through all the page of PDF file
    for page_number in range(1, len(document.pages) + 1):
        # Get the color type information for particular PDF page
        page_color_type = document.pages[page_number].color_type
        color_type_map = {
            ap.ColorType.BLACK_AND_WHITE: "Black and white",
            ap.ColorType.GRAYSCALE: "Gray Scale",
            ap.ColorType.RGB: "RGB",
            ap.ColorType.UNDEFINED: "undefined",
        }
        color_description = color_type_map.get(page_color_type, "unknown")
        print(f"Page # {page_number} is {color_description}.")

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