Recortar páginas PDF programáticamente C#

Obtener propiedades de página

Cada página en un archivo PDF tiene una serie de propiedades, como el ancho, la altura, el sangrado, el recorte y el trimbox. Aspose.PDF le permite acceder a estas propiedades.

  • Media box: El media box es la caja de página más grande. Corresponde al tamaño de la página (por ejemplo, A4, A5, US Letter, etc.) seleccionado cuando el documento fue impreso en PostScript o PDF. En otras palabras, el 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 a tamaño (“recortado”), la tinta llegue hasta el borde de la página. Incluso si la página está mal recortada - cortada 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 imprimir y recortar.
  • Art box: El art box es la caja dibujada alrededor del contenido real de las páginas en sus documentos. Esta caja de página se utiliza al importar documentos PDF en otras aplicaciones.
  • Crop box: El crop box es el tamaño de “página” en el que se muestra su documento PDF en Adobe Acrobat. En la vista normal, solo se muestran los contenidos del crop box en Adobe Acrobat. Para descripciones detalladas de estas propiedades, lea la especificación de Adobe.Pdf, particularmente 10.10.1 Límites de página.
  • Page.Rect: la intersección (rectángulo comúnmente visible) del MediaBox y DropBox. La imagen a continuación ilustra estas propiedades. Para más detalles, visite esta página.

El siguiente fragmento de código también funciona con la biblioteca Aspose.PDF.Drawing.

El fragmento a continuación muestra cómo recortar la 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");  
    }
}

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.