Обрезка страниц PDF в Java

Aspose.PDF for Java позволяет обрезать страницы либо с помощью явных координат границ страницы, либо на основе обнаруженного содержимого.

Обрезка страницы с помощью настройки её границ

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

  1. Откройте исходный PDF в объекте Document.
  2. Создайте новый прямоугольник обрезки Rectangle.
  3. Примените прямоугольник к областям страниц, связанным с обрезкой, и сохраните документ.
public static void cropPage(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        Rectangle newBox = new Rectangle(200, 220, 2170, 1520, true);
        document.getPages().get_Item(1).setCropBox(newBox);
        document.getPages().get_Item(1).setTrimBox(newBox);
        document.getPages().get_Item(1).setArtBox(newBox);
        document.getPages().get_Item(1).setBleedBox(newBox);
        document.save(outputFile.toString());
    }
}

Обрезка страницы по обнаруженному содержимому

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

  1. Откройте исходный PDF в объекте Document.
  2. Используйте ImagePlacementAbsorber для определения размещения изображений.
  3. Задайте область обрезки по прямоугольнику изображения, если оно найдено, затем сохраните документ.
public static void cropPageByContent(Path inputFile, Path outputFile) {
    try (Document document = new Document(inputFile.toString())) {
        ImagePlacementAbsorber absorber = new ImagePlacementAbsorber();
        document.getPages().get_Item(1).accept(absorber);
        if (absorber.getImagePlacements().size() > 0) {
            document.getPages().get_Item(1).setCropBox(absorber.getImagePlacements().get_Item(1).getRectangle());
        } else {
            System.out.println("No images found on the first page");
        }
        document.save(outputFile.toString());
    }
}