Editando páginas individuales de un PDF

Explicación

La clase PdfPageEditor es diferente de la clase PdfFileEditor y de la clase PdfContentEditor. Primero necesitamos entender la diferencia, y luego podremos comprender mejor la clase PdfPageEditor. La clase PdfFileEditor te permite manipular todas las páginas en un archivo, como agregar, eliminar o concatenar páginas, etc., mientras que la clase PdfContentEditor te ayuda a manipular el contenido de una página, es decir, texto y otros objetos, etc. Por otro lado, la clase PdfPageEditor solo trabaja con la página individual en sí, como rotar, hacer zoom y alinear una página, etc.

Podemos dividir las características proporcionadas por esta clase en tres categorías principales, es decir, Transición, Alineación y Visualización. Vamos a discutir estas categorías a continuación:

Transición

Esta clase contiene dos propiedades relacionadas con la transición, es decir, TransitionType y TransitionDuration. TransitionType especifica el estilo de transición que se utilizará al pasar a esta página desde otra página durante una presentación. TransitionDuration especifica la duración de visualización para las páginas.

Alineación

La clase PdfPageEditor admite tanto alineaciones horizontales como verticales. Proporciona dos propiedades para servir a este propósito, es decir, Alignment y VerticalAlignment. La propiedad Alignment se utiliza para alinear el contenido horizontalmente. La propiedad Alignment toma un valor de AlignmentType, que contiene tres opciones, es decir, Centro, Izquierda y Derecha. La propiedad VerticalAlignment toma un valor de VerticalAlignmentType, que contiene tres opciones, es decir, Inferior, Centro y Superior.

Visualización

Bajo la categoría de visualización, podemos incluir propiedades como PageSize, Rotation, Zoom y DisplayDuration. La propiedad PageSize especifica el tamaño de la página individual en el archivo. Esta propiedad toma un objeto PageSize como entrada, que encapsula tamaños de página predefinidos como A0, A1, A2, A3, A4, A5, A6, B5, Carta, Ledger y P11x17. La propiedad Rotation se utiliza para establecer la rotación de una página individual. Puede tomar valores 0, 90, 180 o 270. La propiedad Zoom establece el coeficiente de zoom para la página y toma un valor de punto flotante como entrada. Esta clase también proporciona un método para obtener el tamaño de la página y la rotación de la página individual en el archivo.

Puedes encontrar ejemplos de los métodos mencionados anteriormente en el fragmento de código dado a continuación:

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

    // Create a new instance of PdfPageEditor class
    using (var pdfPageEditor = new Aspose.Pdf.Facades.PdfPageEditor())
    {
        // Bind PDF document
        pdfPageEditor.BindPdf(dataDir + "FilledForm.pdf");

        // Specify an array of pages which need to be manipulated (pages can be multiple, here we have specified only one page)
        pdfPageEditor.ProcessPages = new int[] { 1 };

        // Alignment related code
        pdfPageEditor.HorizontalAlignment = Aspose.Pdf.HorizontalAlignment.Right;

        // Specify transition type for the pages
        pdfPageEditor.TransitionType = 2;
        // Specify transition duration
        pdfPageEditor.TransitionDuration = 5;

        // Display related code

        // Select a page size from the enumeration and assign to property
        pdfPageEditor.PageSize = Aspose.Pdf.PageSize.PageLedger;

        // Assign page rotation
        pdfPageEditor.Rotation = 90;

        // Specify zoom factor for the page
        pdfPageEditor.Zoom = 100;

        // Assign display duration for the page
        pdfPageEditor.DisplayDuration = 5;

        // Fetching methods

        // Methods provided by the class, page rotation specified already
        var rotation = pdfPageEditor.GetPageRotation(1);

        // Already specified page can be fetched
        var pageSize = pdfPageEditor.GetPageSize(1);

        // This method gets the page count
        var totalPages = pdfPageEditor.GetPages();

        // This method changes the origin from (0,0) to specified number
        pdfPageEditor.MovePosition(100, 100);

        // Save PDF document
        pdfPageEditor.Save(dataDir + "EditPdfPages_out.pdf");
    }
}

Conclusión