Recadrer des pages PDF en Python
Obtenir les propriétés de la page
Chaque page d’un fichier PDF possède un certain nombre de propriétés, telles que la largeur, la hauteur, bleed-, crop- et trimbox. Aspose.PDF for Python vous permet d’accéder à ces propriétés.
Utilisez cette page lorsque vous avez besoin de réduire la zone visible de la page, de préparer des fichiers pour les flux de travail d’impression, ou d’inspecter la géométrie des boîtes de page dans les documents PDF.
- media_box: La media box est la plus grande boîte de page. Elle correspond à la taille de la page (par exemple A4, A5, US Letter, etc.) sélectionnée lorsque le document a été imprimé en PostScript ou en PDF. En d’autres termes, la media box détermine la taille physique du support sur lequel le document PDF est affiché ou imprimé.
- bleed_box: Si le document possède du bleed, le PDF comportera également une boîte de bleed. Le bleed est la quantité de couleur (ou d’illustration) qui dépasse le bord d’une page. Il est utilisé pour s’assurer que lorsque le document est imprimé et découpé à la taille (\u0022trimmed\u0022), l’encre ira jusqu’au bord de la page. Même si la page est mal découpée - découpée légèrement en dehors des repères de coupe - aucune bordure blanche n’apparaîtra sur la page.
- trim_box: La trim box indique la taille finale d’un document après impression et découpe.
- art_box : La boîte d’art est la boîte dessinée autour du contenu réel des pages de vos documents. Cette boîte de page est utilisée lors de l’importation de documents PDF dans d’autres applications.
- crop_box : La boîte de rognage est la taille “page” à laquelle votre document PDF est affiché dans Adobe Acrobat. En mode normal, seul le contenu de la boîte de rognage est affiché dans Adobe Acrobat. Pour des descriptions détaillées de ces propriétés, consultez la spécification Adobe.Pdf, en particulier la section 10.10.1 Limites de page.
Rogner le premier Page d’un PDF vers une zone rectangulaire spécifique en utilisant Aspose.PDF for Python. La fonction ajuste plusieurs boîtes de page—crop_box, trim_box, art_box, et bleed_box—pour garantir des résultats visuels cohérents. Le recadrage peut être utile pour supprimer les marges indésirables ou se concentrer sur une zone particulière d’une page.
- Chargez le PDF en tant que
Document(utiliserap.Document()). - Définissez le rectangle de rognage en utilisant
Rectanglewith the desired coordinates (in points). - Set the
Page’scrop_box,trim_box,art_box, etbleed_boxau rectangle défini. - Enregistrer le modifié
Documentvers un nouveau fichier de sortie.
import sys
import aspose.pdf as ap
from os import path
def crop_page(input_file_name, output_file_name):
document = ap.Document(input_file_name)
new_box = ap.Rectangle(200, 220, 2170, 1520, True)
document.pages[1].crop_box = new_box
document.pages[1].trim_box = new_box
document.pages[1].art_box = new_box
document.pages[1].bleed_box = new_box
document.save(output_file_name)
Dans cet exemple, nous avons utilisé un fichier d’exemple ici. Initialement, notre page ressemble à ce qui est montré sur la Figure 1.

Après la modification, la page ressemblera à la Figure 2.

Recadrer la page PDF en fonction du contenu de la première image
Rogner le premier Page dynamiquement basé sur les limites de la première image trouvée sur la page. En utilisant ImagePlacementAbsorber, le script identifie la première image et ajuste la page crop_box pour correspondre aux dimensions de l’image. Cette approche est utile lorsque vous souhaitez vous concentrer sur un contenu visuel spécifique plutôt que sur des coordonnées prédéfinies.
- Chargez le PDF en tant que
Document. - Localiser les images sur la première page en utilisant
ImagePlacementAbsorber. - Vérifier si des images existent :
- Enregistrer le modifié
Documentvers le fichier de sortie spécifié.
import sys
import aspose.pdf as ap
from os import path
def crop_page_by_content(input_file_name, output_file_name):
document = ap.Document(input_file_name)
# Find first image on first page using ImagePlacementAbsorber
absorber = ap.ImagePlacementAbsorber()
document.pages[1].accept(absorber)
if len(absorber.image_placements) > 0:
first_image = absorber.image_placements[1]
document.pages[1].crop_box = first_image.rectangle
else:
print("No images found on the first page")
document.save(output_file_name)