Recortar páginas PDF em Python
Obter propriedades da página
Cada página em um arquivo PDF possui várias propriedades, como largura, altura, bleed-, crop- e trimbox. Aspose.PDF for Python permite que você acesse essas propriedades.
Use esta página quando precisar reduzir a área visível da página, preparar arquivos para fluxos de trabalho de impressão ou inspecionar a geometria das caixas da página em documentos PDF.
- media_box: A media box é a maior caixa da página. Ela corresponde ao tamanho da página (por exemplo A4, A5, US Letter, etc.) selecionado quando o documento foi impresso para PostScript ou PDF. Em outras palavras, a media box determina o tamanho físico da mídia na qual o documento PDF é exibido ou impresso.
- bleed_box: Se o documento tem bleed, o PDF também terá uma bleed box. Bleed é a quantidade de cor (ou arte) que se estende além da borda de uma página. É usado para garantir que, quando o documento é impresso e cortado ao tamanho ("trimmed"), a tinta chegue até a borda da página. Mesmo que a página seja cortada incorretamente - ligeiramente fora das marcas de corte - não aparecerão bordas brancas na página.
- trim_box: A trim box indica o tamanho final de um documento após a impressão e o corte.
- art_box: A caixa de arte é a caixa desenhada ao redor do conteúdo real das páginas em seus documentos. Esta caixa de página é usada ao importar documentos PDF em outras aplicações.
- crop_box: A crop box é o tamanho “página” no qual seu documento PDF é exibido no Adobe Acrobat. Na visualização normal, apenas o conteúdo da crop box é exibido no Adobe Acrobat. Para descrições detalhadas dessas propriedades, lea a especificação Adobe.Pdf, particularmente 10.10.1 Limites de Página.
Cortar o primeiro Page de um PDF para uma área retangular específica usando Aspose.PDF for Python. A função ajusta várias caixas de página—crop_box, trim_box, art_box, e bleed_box—para garantir resultados visuais consistentes. O recorte pode ser útil para remover margens indesejadas ou focar em uma região específica de uma página.
- Carregue o PDF como um
Document(usarap.Document()). - Defina o retângulo de corte usando
Rectanglecom as coordenadas desejadas (em pontos). - Defina o
Page’scrop_box,trim_box,art_box, ebleed_boxpara o retângulo definido. - Salvar o modificado
Documentpara um novo arquivo de saída.
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)
Neste exemplo, usamos um arquivo de amostra aqui. Inicialmente, nossa página parece como mostrada na Figura 1.

Depois da alteração, a página ficará como a Figura 2.

Recortar página PDF com base no conteúdo da primeira imagem
Cortar o primeiro Page dinamicamente com base nos limites da primeira imagem encontrada na página. Usando ImagePlacementAbsorber, o script identifica a primeira imagem e ajusta a página crop_box para corresponder às dimensões da imagem. Essa abordagem é útil quando você deseja focar em conteúdo visual específico em vez de coordenadas predefinidas.
- Carregue o PDF como um
Document. - Localizar imagens na primeira página usando
ImagePlacementAbsorber. - Verificar se as imagens existem:
- Salvar o modificado
Documentpara o arquivo de saída 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)