Editando páginas individuais de um PDF

Explicação

A classe PdfPageEditor é diferente da classe PdfFileEditor e da classe PdfContentEditor. Primeiro, precisamos entender a diferença, e então poderemos entender melhor a classe PdfPageEditor. A classe PdfFileEditor permite que você manipule todas as páginas em um arquivo, como adicionar, excluir ou concatenar páginas, etc., enquanto a classe PdfContentEditor ajuda você a manipular o conteúdo de uma página, ou seja, texto e outros objetos, etc. Por outro lado, a classe PdfPageEditor trabalha apenas com a página individual em si, como rotacionar, ampliar e alinhar uma página, etc.

Podemos dividir os recursos fornecidos por esta classe em três categorias principais, ou seja, Transição, Alinhamento e Exibição. Vamos discutir essas categorias abaixo:

Transição

Esta classe contém duas propriedades relacionadas à transição, ou seja, TransitionType e TransitionDuration. TransitionType especifica o estilo de transição a ser usado ao mover para esta página a partir de outra página durante uma apresentação. TransitionDuration especifica a duração de exibição para as páginas.

Alinhamento

A classe PdfPageEditor suporta alinhamentos horizontais e verticais. Ela fornece duas propriedades para atender a esse propósito, ou seja, Alignment e VerticalAlignment. A propriedade Alignment é usada para alinhar o conteúdo horizontalmente. A propriedade Alignment aceita um valor do tipo AlignmentType, que contém três opções, ou seja, Centro, Esquerda e Direita. A propriedade VerticalAlignment aceita um valor do tipo VerticalAlignmentType, que contém três opções, ou seja, Inferior, Centro e Superior.

Exibição

Na categoria de exibição, podemos incluir propriedades como PageSize, Rotation, Zoom e DisplayDuration. A propriedade PageSize especifica o tamanho da página individual no arquivo. Esta propriedade aceita um objeto PageSize como entrada, que encapsula tamanhos de página predefinidos, como A0, A1, A2, A3, A4, A5, A6, B5, Carta, Ledger e P11x17. A propriedade Rotation é usada para definir a rotação de uma página individual. Ela pode aceitar valores 0, 90, 180 ou 270. A propriedade Zoom define o coeficiente de zoom para a página e aceita um valor float como entrada. Esta classe também fornece um método para obter o tamanho da página e a rotação da página individual no arquivo.

Você pode encontrar exemplos dos métodos mencionados acima no trecho de código dado abaixo:

// 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");
    }
}

Conclusão