Recortar Páginas PDF usando PHP
Obter Propriedades da Página
Cada página em um arquivo PDF possui várias propriedades, como largura, altura, bleed-, crop- e trimbox. O Aspose.PDF para PHP via Java permite que você acesse essas propriedades.
-
Caixa de mídia: A caixa de mídia é a maior caixa da página. Ela corresponde ao tamanho da página (por exemplo, A4, A5, Carta dos EUA, etc.) selecionada quando o documento foi impresso em PostScript ou PDF. Em outras palavras, a caixa de mídia determina o tamanho físico do meio no qual o documento PDF é exibido ou impresso.
-
Caixa de sangria: Se o documento tiver sangria, o PDF também terá uma caixa de sangria. 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 for impresso e cortado no tamanho (“refilado”), a tinta vá até a borda da página. Mesmo se a página for mal cortada - cortada ligeiramente fora das marcas de corte - não aparecerão bordas brancas na página.
-
Caixa de corte: A caixa de corte indica o tamanho final de um documento após a impressão e o corte.
-
Caixa de arte: 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.
-
Caixa de corte: A caixa de corte é o tamanho da “página” no qual seu documento PDF é exibido no Adobe Acrobat. Na visualização normal, apenas o conteúdo da caixa de corte é exibido no Adobe Acrobat. Para descrições detalhadas dessas propriedades, leia a especificação Adobe.Pdf, particularmente 10.10.1 Limites da Página.
-
Page.Rect: a interseção (retângulo comumente visível) da MediaBox e DropBox. A imagem abaixo ilustra essas propriedades. Para mais detalhes, por favor visite esta página.
O snippet abaixo mostra como cortar a página:
// Abrir documento
$document = new Document($inputFile);
$page = $document->getPages()->get_Item(1);
$responseData = $page->getCropBox() . PHP_EOL;
$responseData = $responseData . $page->getTrimBox() . PHP_EOL;
$responseData = $responseData . $page->getArtBox() . PHP_EOL;
$responseData = $responseData . $page->getBleedBox() . PHP_EOL;
$responseData = $responseData . $page->getMediaBox() . PHP_EOL;
// Criar novo Retângulo de Caixa
$newBox = new Rectangle(200, 220, 2170, 1520);
$page->setCropBox($newBox);
$page->setTrimBox($newBox);
$page->setArtBox($newBox);
$page->setBleedBox($newBox);
// Salvar documento de saída
$document->save($outputFile);
$document->close();
Neste exemplo, usamos um arquivo de amostra aqui. Inicialmente, nossa página parece como mostrado na Figura 1.
Após a mudança, a página ficará como a Figura 2.