Получение и Установка Свойств Страницы с использованием Python
Aspose.PDF for Python via .NET позволяет читать и задавать свойства страниц в PDF-файле в ваших Python приложениях. Этот раздел показывает, как получить количество страниц в PDF-файле, получить информацию о свойствах страниц PDF, таких как цвет, и задать свойства страниц. Примеры приведены на Python.
Получение количества страниц в PDF-файле
При работе с документами часто необходимо знать, сколько страниц они содержат. С Aspose.PDF это занимает не более двух строк кода.
Чтобы получить количество страниц в PDF-файле:
- Откройте PDF-файл, используя класс Document.
- Затем используйте свойство Count коллекции PageCollection (из объекта Document), чтобы получить общее количество страниц в документе.
Следующий фрагмент кода показывает, как получить количество страниц PDF-файла.
import aspose.pdf as ap
# Открыть документ
document = ap.Document(input_pdf)
# Получить количество страниц
print("Количество страниц:", str(len(document.pages)))
Получение количества страниц без сохранения документа
Иногда мы создаем PDF файлы на лету, и во время создания PDF файла может возникнуть необходимость (создание оглавления и т.д.) получить количество страниц PDF файла без сохранения файла на системе или потоке. Чтобы удовлетворить это требование, в классе Document был введен метод process_paragraphs(). Пожалуйста, ознакомьтесь с приведенным ниже фрагментом кода, который показывает шаги для получения количества страниц без сохранения документа.
import aspose.pdf as ap
# Создать экземпляр Document
document = ap.Document()
# Добавить страницу в коллекцию страниц PDF файла
page = document.pages.add()
# Создать экземпляр цикла
for i in range(0, 300):
# Добавить TextFragment в коллекцию абзацев объекта страницы
page.paragraphs.add(ap.text.TextFragment("Тест количества страниц"))
# Обработать абзацы в PDF файле для получения точного количества страниц
document.process_paragraphs()
# Вывести количество страниц в документе
print("Количество страниц в документе =", 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. Bleed — это количество цвета (или изображения), которое выходит за край страницы. Это используется для того, чтобы при печати и обрезке документа до нужного размера («подрезка») чернила доходили до края страницы. Даже если страница будет обрезана неточно — слегка не по меткам обрезки — на странице не появятся белые края.
- Trim box: Trim box указывает окончательный размер документа после печати и обрезки.
- Art box: Art box — это рамка, нарисованная вокруг фактического содержимого страниц в ваших документах. Эта рамка используется при импорте PDF-документов в другие приложения.
- Crop box: Crop box — это размер «страницы», при котором ваш PDF-документ отображается в Adobe Acrobat. В нормальном режиме отображения в Adobe Acrobat отображается только содержимое рамки Crop box. Для подробного описания этих свойств прочитайте спецификацию Adobe.Pdf, в частности, раздел 10.10.1 Page Boundaries.
- Page.Rect: пересечение (обычно видимый прямоугольник) MediaBox и DropBox. Картинка ниже иллюстрирует эти свойства.
Для получения дополнительной информации, пожалуйста, посетите эту страницу.
Доступ к свойствам страницы
Класс Page предоставляет все свойства, связанные с конкретной страницей PDF. Все страницы PDF-файлов содержатся в коллекции PageCollection объекта Document.
Оттуда можно получить доступ либо к отдельным объектам Page, используя их индекс, либо пройтись по коллекции с помощью цикла foreach, чтобы получить все страницы. Как только доступ к отдельной странице получен, мы можем получить ее свойства. Следующий фрагмент кода показывает, как получить свойства страницы.
import aspose.pdf as ap
# Открыть документ
document = ap.Document(input_pdf)
# Получить конкретную страницу
page = document.pages[1]
# Получить свойства страницы
print(
"ArtBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.art_box.height,
page.art_box.width,
page.art_box.llx,
page.art_box.lly,
page.art_box.urx,
page.art_box.ury,
)
)
print(
"BleedBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.bleed_box.height,
page.bleed_box.width,
page.bleed_box.llx,
page.bleed_box.lly,
page.bleed_box.urx,
page.bleed_box.ury,
)
)
print(
"CropBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.crop_box.height,
page.crop_box.width,
page.crop_box.llx,
page.crop_box.lly,
page.crop_box.urx,
page.crop_box.ury,
)
)
print(
"MediaBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.media_box.height,
page.media_box.width,
page.media_box.llx,
page.media_box.lly,
page.media_box.urx,
page.media_box.ury,
)
)
print(
"TrimBox : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.trim_box.height,
page.trim_box.width,
page.trim_box.llx,
page.trim_box.lly,
page.trim_box.urx,
page.trim_box.ury,
)
)
print(
"Rect : Height={},Width={},LLX={},LLY={},URX={},URY={}".format(
page.rect.height,
page.rect.width,
page.rect.llx,
page.rect.lly,
page.rect.urx,
page.rect.ury,
)
)
print("Номер страницы :", page.number)
print("Поворот :", page.rotate)
Получение Конкретной Страницы PDF Файла
Aspose.PDF для Python позволяет разделить PDF на отдельные страницы и сохранить их как PDF файлы. Получение определённой страницы в PDF файле и её сохранение как нового PDF - это очень похожая операция: откройте исходный документ, получите доступ к странице, создайте новый документ и добавьте туда страницу.
PageCollection объекта Document содержит страницы в PDF файле. Чтобы получить конкретную страницу из этой коллекции:
- Укажите индекс страницы, используя свойство Pages.
- Создайте новый объект Document.
- Добавьте объект Page к новому объекту Document.
- Сохраните результат, используя метод save().
Следующий код показывает, как получить конкретную страницу из PDF файла и сохранить её как новый файл.
import aspose.pdf as ap
# Открыть документ
document = ap.Document(input_pdf)
# Получить конкретную страницу
page = document.pages[2]
# Сохранить страницу как PDF файл
new_document = ap.Document()
new_document.pages.add(page)
new_document.save(output_pdf)
Определение цвета страницы
Класс Page предоставляет свойства, связанные с конкретной страницей в PDF-документе, включая тип цвета - RGB, черно-белый, градации серого или не определен - который использует страница.
Все страницы PDF-файлов содержатся в коллекции PageCollection. The color_type свойство указывает цвет элементов на странице. Чтобы получить или определить информацию о цвете для конкретной страницы PDF, используйте свойство Page объекта color_type.
Следующий фрагмент кода показывает, как перебрать отдельные страницы PDF-файла, чтобы получить информацию о цвете.
import aspose.pdf as ap
# Открыть исходный PDF файл
document = ap.Document(input_pdf)
# Перебрать все страницы PDF-файла
for page_n in range(0, len(document.pages)):
page_number = page_n + 1
# Получить информацию о типе цвета для конкретной страницы PDF
page_color_type = document.pages[page_number].color_type
if page_color_type == ap.ColorType.BLACK_AND_WHITE:
print("Страница # " + str(page_number) + " черно-белая.")
if page_color_type == ap.ColorType.GRAYSCALE:
print("Страница # " + str(page_number) + " в градациях серого.")
if page_color_type == ap.ColorType.RGB:
print("Страница # " + str(page_number) + " RGB.")
if page_color_type == ap.ColorType.UNDEFINED:
print("Цвет страницы # " + str(page_number) + " не определен.")