Recortar páginas PDF en Python
Obtener propiedades de página
Cada página en un archivo PDF tiene varias propiedades, como el ancho, la altura, bleed-, crop- y trimbox. Aspose.PDF for Python le permite acceder a estas propiedades.
Utilice esta página cuando necesite reducir el área visible de la página, preparar archivos para flujos de trabajo de impresión o inspeccionar la geometría de los recuadros de página en documentos PDF.
- media_box: La media box es el recuadro de página más grande. Corresponde al tamaño de página (por ejemplo A4, A5, US Letter, etc.) seleccionado cuando el documento se imprimió a PostScript o PDF. En otras palabras, la media box determina el tamaño físico del medio en el que se muestra o imprime el documento PDF.
- bleed_box: Si el documento tiene sangrado, el PDF también tendrá un bleed box. El sangrado es la cantidad de color (o arte) que se extiende más allá del borde de una página. Se utiliza para asegurarse de que cuando el documento se imprime y se corta al tamaño (\u0022trimmed\u0022), la tinta llegue hasta el borde de la página. Incluso si la página se corta incorrectamente - recortada ligeramente fuera de las marcas de recorte - no aparecerán bordes blancos en la página.
- trim_box: El trim box indica el tamaño final de un documento después de la impresión y el recorte.
- art_box: El art box es el cuadro dibujado alrededor del contenido real de las páginas en sus documentos. Este cuadro de página se utiliza al importar documentos PDF en otras aplicaciones.
- crop_box: El crop box es el tamaño “página” con el que se muestra su documento PDF en Adobe Acrobat. En la vista normal, solo se muestra el contenido del crop box en Adobe Acrobat. Para descripciones detalladas de estas propiedades, lea la especificación Adobe.Pdf, particularmente 10.10.1 Límites de página.
Recortar el primero Page de un PDF a un área rectangular específica usando Aspose.PDF for Python. La función ajusta múltiples cajas de página—crop_box, trim_box, art_box, y bleed_box—para garantizar resultados visuales consistentes. El recorte puede ser útil para eliminar márgenes no deseados o enfocar una región particular de una página.
- Cargar el PDF como un
Document(usarap.Document()). - Defina el rectángulo de recorte usando
Rectanglecon las coordenadas deseadas (en puntos). - Establecer el
Pageescrop_box,trim_box,art_box, ybleed_boxal rectángulo definido. - Guarde lo modificado
Documenta un nuevo archivo de salida.
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)
En este ejemplo utilizamos un archivo de muestra aquí. Inicialmente, nuestra página se ve como se muestra en la Figura 1.

Después del cambio, la página se verá como la Figura 2.

Recortar página PDF según el contenido de la primera imagen
Recortar el primero Page dinámicamente basado en los límites de la primera imagen encontrada en la página. Al usar ImagePlacementAbsorber, el script identifica la primera imagen y ajusta la página crop_box para coincidir con las dimensiones de la imagen. Este enfoque es útil cuando deseas enfocarte en contenido visual específico en lugar de coordenadas predefinidas.
- Cargar el PDF como un
Document. - Ubica imágenes en la primera página usando
ImagePlacementAbsorber. - Verifica si existen imágenes:
- Guarde lo modificado
Documental archivo de salida especificado.
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)