Recortar páginas PDF en Java

Aspose.PDF for Java le permite recortar páginas ya sea mediante coordenadas de caja explícitas o basándose en el contenido detectado.

Recortar una página configurando los recuadros de página

Utilice este ejemplo cuando necesite aplicar la misma área de recorte a los recuadros principales de la página.

  1. Abra el PDF de origen Document.
  2. Cree el nuevo recorte Rectangle.
  3. Aplique el rectángulo a los cuadros de página relacionados con el recorte y guarde el documento.
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());
    }
}

Recortar una página según el contenido detectado

Utilice este ejemplo cuando el área de recorte debe derivarse de la primera imagen detectada en la página.

  1. Abra el PDF de origen Document.
  2. Utilice ImagePlacementAbsorber para detectar la ubicación de imágenes.
  3. Establezca la caja de recorte al rectángulo de la imagen si se encuentra, luego guarde el documento.
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());
    }
}