Recadrer des pages PDF en Java

Aspose.PDF for Java vous permet de recadrer des pages soit en définissant explicitement les coordonnées des zones de page, soit en fonction du contenu détecté.

Recadrer une page en définissant des zones de page

Utilisez cet exemple lorsque vous devez appliquer la même zone de recadrage aux zones de la page principale.

  1. Ouvrez le PDF source Document.
  2. Créez le nouveau recadrage Rectangle.
  3. Appliquez le rectangle aux zones de page liées au recadrage et enregistrez le document.
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());
    }
}

Recadrer une page en fonction du contenu détecté

Utilisez cet exemple lorsque la zone de recadrage doit être dérivée de la première image détectée sur la page.

  1. Ouvrez le PDF source Document.
  2. Utilisez ImagePlacementAbsorber pour détecter les emplacements d’images.
  3. Si une image est trouvée, définissez la zone de recadrage sur son rectangle, puis enregistrez le document.
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());
    }
}