Recortar páginas PDF programaticamente C#

Obter Propriedades da Página

Cada página em um arquivo PDF possui um número de propriedades, como largura, altura, bleed-, crop- e trimbox. Aspose.PDF permite que você acesse essas propriedades.

  • Media box: A media box é a maior caixa de página. Ela corresponde ao tamanho da página (por exemplo, A4, A5, US Letter, etc.) selecionado quando o documento foi impresso em PostScript ou PDF. Em outras palavras, a media box determina o tamanho físico do meio no qual o documento PDF é exibido ou impresso.
  • Bleed box: Se o documento tiver 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 para o tamanho (“trimmed”), a tinta vá até a borda da página. Mesmo que a página seja mal cortada - cortada ligeiramente fora das marcas de corte - nenhuma borda branca aparecerá na página.
  • Trim box: A trim box indica o tamanho final de um documento após impressão e corte.
  • Art box: A art box é 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 da “página” em que 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, leia a especificação Adobe.Pdf, particularmente 10.10.1 Limites da Página.
  • Page.Rect: a interseção (comumente retângulo visível) da MediaBox e DropBox. A imagem abaixo ilustra essas propriedades. Para mais detalhes, visite esta página.

O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.

O trecho abaixo mostra como recortar a página:

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void CropPage()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Pages();

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "CropPageInput.pdf"))
    {
        Console.WriteLine(document.Pages[1].CropBox);
        Console.WriteLine(document.Pages[1].TrimBox);
        Console.WriteLine(document.Pages[1].ArtBox);
        Console.WriteLine(document.Pages[1].BleedBox);
        Console.WriteLine(document.Pages[1].MediaBox);
        // Create new Box rectangle
        var newBox = new Rectangle(200, 220, 2170, 1520);
        document.Pages[1].CropBox = newBox;
        document.Pages[1].TrimBox = newBox;
        document.Pages[1].ArtBox = newBox;
        document.Pages[1].BleedBox = newBox;
        // Save PDF document
        document.Save(dataDir + "CropPage_out.pdf");  
    }
}

Neste exemplo, usamos um arquivo de amostra aqui. Inicialmente, nossa página parece como mostrado na Figura 1.

Após a alteração, a página parecerá com a Figura 2.