Обрезка страниц PDF с использованием PHP

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

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

  • Медиа-бокс: Медиа-бокс является самым большим боксом страницы. Он соответствует размеру страницы (например, A4, A5, US Letter и т. д.), выбранному при печати документа в PostScript или PDF. Другими словами, медиа-бокс определяет физический размер носителя, на котором отображается или печатается PDF-документ.

  • Область вылета: Если документ имеет вылет, то PDF будет также иметь область вылета.
    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. Картинка ниже иллюстрирует эти свойства.
    Для получения дополнительной информации, пожалуйста, посетите эту страницу.

Пример ниже показывает, как обрезать страницу:


    // Открыть документ
    $document = new Document($inputFile);      

    $page = $document->getPages()->get_Item(1);

    $responseData = $page->getCropBox() . PHP_EOL;
    $responseData = $responseData . $page->getTrimBox() . PHP_EOL;
    $responseData = $responseData . $page->getArtBox() . PHP_EOL;
    $responseData = $responseData . $page->getBleedBox() . PHP_EOL;
    $responseData = $responseData . $page->getMediaBox() . PHP_EOL;

    // Создать новый прямоугольник Box
    $newBox = new Rectangle(200, 220, 2170, 1520);

    $page->setCropBox($newBox);
    $page->setTrimBox($newBox);
    $page->setArtBox($newBox);
    $page->setBleedBox($newBox);

    // Сохранить выходной документ
    $document->save($outputFile);
    $document->close();

В этом примере мы использовали пример файла здесь. Изначально наша страница выглядит, как показано на Рисунке 1.
Рисунок 1. Обрезанная страница

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