Édition des pages individuelles d'un PDF

Explication

La classe PdfPageEditor est différente de la classe PdfFileEditor et de la classe PdfContentEditor. Tout d’abord, nous devons comprendre la différence, puis nous pourrons mieux comprendre la classe PdfPageEditor. La classe PdfFileEditor vous permet de manipuler toutes les pages d’un fichier, comme ajouter, supprimer ou concaténer des pages, tandis que la classe PdfContentEditor vous aide à manipuler le contenu d’une page, c’est-à-dire le texte et d’autres objets, etc. En revanche, la classe PdfPageEditor ne fonctionne qu’avec la page individuelle elle-même, comme la rotation, le zoom et l’alignement d’une page, etc.

Nous pouvons diviser les fonctionnalités fournies par cette classe en trois catégories principales, à savoir Transition, Alignement et Affichage. Nous allons discuter de ces catégories ci-dessous :

Transition

Cette classe contient deux propriétés liées à la transition, à savoir TransitionType et TransitionDuration. TransitionType spécifie le style de transition à utiliser lors du passage à cette page depuis une autre page pendant une présentation. TransitionDuration spécifie la durée d’affichage des pages.

Alignement

La classe PdfPageEditor prend en charge à la fois les alignements horizontal et vertical. Elle fournit deux propriétés pour servir cet objectif, à savoir Alignment et VerticalAlignment. La propriété Alignment est utilisée pour aligner le contenu horizontalement. La propriété Alignment prend une valeur de AlignmentType, qui contient trois options, à savoir Centre, Gauche et Droite. La propriété VerticalAlignment prend une valeur de VerticalAlignmentType, qui contient trois options, à savoir Bas, Centre et Haut.

Affichage

Sous la catégorie d’affichage, nous pouvons inclure des propriétés telles que PageSize, Rotation, Zoom et DisplayDuration. La propriété PageSize spécifie la taille de la page individuelle dans le fichier. Cette propriété prend un objet PageSize en entrée, qui encapsule des tailles de page prédéfinies telles que A0, A1, A2, A3, A4, A5, A6, B5, Lettre, Ledger et P11x17. La propriété Rotation est utilisée pour définir la rotation d’une page individuelle. Elle peut prendre les valeurs 0, 90, 180 ou 270. La propriété Zoom définit le coefficient de zoom pour la page et prend une valeur flottante en entrée. Cette classe fournit également une méthode pour obtenir la taille de la page et la rotation de la page individuelle dans le fichier. Vous pouvez trouver des exemples des méthodes mentionnées ci-dessus dans l’extrait de code donné ci-dessous.

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