Obtenir et définir les propriétés de page

Aspose.PDF for .NET vous permet de lire et de définir les propriétés des pages dans un fichier PDF dans vos applications .NET. Cette section montre comment obtenir le nombre de pages dans un fichier PDF, obtenir des informations sur les propriétés des pages PDF telles que la couleur et définir les propriétés de page. Les exemples donnés sont en C#, mais vous pouvez utiliser n’importe quel langage .NET tel que VB.NET pour atteindre le même résultat.

Le code suivant fonctionne également avec la bibliothèque Aspose.PDF.Drawing.

Obtenir le nombre de pages dans un fichier PDF

Lorsque vous travaillez avec des documents, vous souhaitez souvent savoir combien de pages ils contiennent. Avec Aspose.PDF, cela ne prend pas plus de deux lignes de code.

Pour obtenir le nombre de pages dans un fichier PDF :

  1. Ouvrez le fichier PDF en utilisant la classe Document.
  2. Ensuite, utilisez la propriété Count de la collection PageCollection (de l’objet Document) pour obtenir le nombre total de pages dans le document.

Le code suivant montre comment obtenir le nombre de pages d’un fichier PDF.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetNumberofPages.pdf"))
    {
        // Get page count
        System.Console.WriteLine("Page Count : {0}", document.Pages.Count);
    }
}

Obtenir le nombre de pages sans enregistrer le document

Parfois, nous générons les fichiers PDF à la volée et lors de la création du fichier PDF, nous pouvons rencontrer le besoin (création de table des matières, etc.) d’obtenir le nombre de pages du fichier PDF sans enregistrer le fichier sur le système ou le flux. Afin de répondre à ce besoin, une méthode ProcessParagraphs a été introduite dans la classe Document. Veuillez consulter le code suivant qui montre les étapes pour obtenir le nombre de pages sans enregistrer le document.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void GetPageCountWithoutSavingTheDocument()
{
    // Create PDF document
    using (var document = new Aspose.Pdf.Document())
    {
        // Add page
        var page = document.Pages.Add();
        // Create loop instance
        for (var i = 0; i < 300; i++)
        {
            // Add TextFragment to paragraphs collection of page object
            page.Paragraphs.Add(new Aspose.Pdf.Text.TextFragment("Pages count test"));
        }
        // Process the paragraphs in PDF file to get accurate page count
        document.ProcessParagraphs();
        // Print number of pages in document
        Console.WriteLine("Number of pages in document = " + document.Pages.Count);
    }
}

Obtenir les propriétés de page

Chaque page d’un fichier PDF a un certain nombre de propriétés, telles que la largeur, la hauteur, le bleed box, le crop box et le trim box. Aspose.PDF vous permet d’accéder à ces propriétés.

Comprendre les propriétés de page : la différence entre Artbox, BleedBox, CropBox, MediaBox, TrimBox et propriété Rect

  • Media box : La media box est la plus grande boîte de page. Elle correspond à la taille de la page (par exemple A4, A5, US Letter, etc.) sélectionnée lorsque le document a été imprimé en PostScript ou PDF. En d’autres termes, la media box détermine la taille physique du support sur lequel le document PDF est affiché ou imprimé.
  • Bleed box : Si le document a un bleed, le PDF aura également une bleed box. Le bleed est la quantité de couleur (ou d’œuvre) qui s’étend au-delà du bord d’une page. Il est utilisé pour s’assurer que lorsque le document est imprimé et découpé à la taille (“découpé”), l’encre ira jusqu’au bord de la page. Même si la page est mal découpée - légèrement en dehors des marques de découpe - aucun bord blanc n’apparaîtra sur la page.
  • Trim box : La trim box indique la taille finale d’un document après impression et découpe.
  • Art box : La art box est la boîte dessinée autour des contenus réels des pages de vos documents. Cette boîte de page est utilisée lors de l’importation de documents PDF dans d’autres applications.
  • Crop box : La crop box est la taille de la “page” à laquelle votre document PDF est affiché dans Adobe Acrobat. En vue normale, seuls les contenus de la crop box sont affichés dans Adobe Acrobat. Pour des descriptions détaillées de ces propriétés, lisez la spécification Adobe.Pdf, en particulier 10.10.1 Page Boundaries.
  • Page.Rect : l’intersection (rectangle communément visible) de la MediaBox et de la DropBox. L’image ci-dessous illustre ces propriétés.

Pour plus de détails, veuillez visiter cette page.

Accéder aux propriétés de page

La classe Page fournit toutes les propriétés liées à une page PDF particulière. Toutes les pages des fichiers PDF sont contenues dans la collection PageCollection de l’objet Document.

À partir de là, il est possible d’accéder soit à des objets Page individuels en utilisant leur index, soit de parcourir la collection, en utilisant une boucle foreach, pour obtenir toutes les pages. Une fois qu’une page individuelle est accessible, nous pouvons obtenir ses propriétés. Le code suivant montre comment obtenir les propriétés de page.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "GetProperties.pdf"))
    {
        // Get page collection
        var pageCollection = document.Pages;
        // Get particular page
        var pdfPage = pageCollection[1];
        // Get page properties
        System.Console.WriteLine("ArtBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.ArtBox.Height, pdfPage.ArtBox.Width, pdfPage.ArtBox.LLX,
            pdfPage.ArtBox.LLY, pdfPage.ArtBox.URX, pdfPage.ArtBox.URY);
        System.Console.WriteLine("BleedBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.BleedBox.Height, pdfPage.BleedBox.Width, pdfPage.BleedBox.LLX,
            pdfPage.BleedBox.LLY, pdfPage.BleedBox.URX, pdfPage.BleedBox.URY);
        System.Console.WriteLine("CropBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.CropBox.Height, pdfPage.CropBox.Width, pdfPage.CropBox.LLX,
            pdfPage.CropBox.LLY, pdfPage.CropBox.URX, pdfPage.CropBox.URY);
        System.Console.WriteLine("MediaBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.MediaBox.Height, pdfPage.MediaBox.Width, pdfPage.MediaBox.LLX,
            pdfPage.MediaBox.LLY, pdfPage.MediaBox.URX, pdfPage.MediaBox.URY);
        System.Console.WriteLine("TrimBox : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.TrimBox.Height, pdfPage.TrimBox.Width, pdfPage.TrimBox.LLX,
            pdfPage.TrimBox.LLY, pdfPage.TrimBox.URX, pdfPage.TrimBox.URY);
        System.Console.WriteLine("Rect : Height={0},Width={1},LLX={2},LLY={3},URX={4},URY={5}", pdfPage.Rect.Height, pdfPage.Rect.Width, pdfPage.Rect.LLX, pdfPage.Rect.LLY,
            pdfPage.Rect.URX, pdfPage.Rect.URY);
        System.Console.WriteLine("Page Number : {0}", pdfPage.Number);
        System.Console.WriteLine("Rotate : {0}", pdfPage.Rotate);
    }
}

Obtenir une page particulière du fichier PDF

Aspose.PDF vous permet de diviser un PDF en pages individuelles et de les enregistrer en tant que fichiers PDF. Obtenir une page spécifiée dans un fichier PDF et l’enregistrer en tant que nouveau PDF est une opération très similaire : ouvrez le document source, accédez à la page, créez un nouveau document et ajoutez la page à celui-ci.

La collection PageCollection de l’objet Document contient les pages du fichier PDF. Pour obtenir une page particulière de cette collection :

  1. Spécifiez l’index de la page en utilisant la propriété Pages.
  2. Créez un nouvel objet Document.
  3. Ajoutez l’objet Page au nouvel objet Document.
  4. Enregistrez la sortie en utilisant la méthode Save.

Le code suivant montre comment obtenir une page particulière d’un fichier PDF et l’enregistrer en tant que nouveau fichier.

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

    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Get particular page
        var pdfPage = document.Pages[2];
        // Save the page as PDF file
        using (var newDocument = new Aspose.Pdf.Document())
        {
            newDocument.Pages.Add(pdfPage);
            // Save PDF document
            newDocument.Save(dataDir + "GetParticularPage_out.pdf");
        }
    }
}

Déterminer la couleur de la page

La classe Page fournit les propriétés liées à une page particulière dans un document PDF, y compris le type de couleur - RGB, noir et blanc, niveaux de gris ou indéfini - utilisé par la page.

Toutes les pages des fichiers PDF sont contenues dans la collection PageCollection. La propriété ColorType spécifie la couleur des éléments sur la page. Pour obtenir ou déterminer les informations de couleur pour une page PDF particulière, utilisez la propriété ColorType de l’objet Page.

Le code suivant montre comment parcourir chaque page d’un fichier PDF pour obtenir des informations de couleur.

// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static void DeterminePageColor()
{
    // The path to the documents directory
    var dataDir = RunExamples.GetDataDir_AsposePdf_Pages();
    
    // Open PDF document
    using (var document = new Aspose.Pdf.Document(dataDir + "input.pdf"))
    {
        // Iterate through all the page of PDF file
        for (var pageCount = 1; pageCount <= document.Pages.Count; pageCount++)
        {
            // Get the color type information for particular PDF page
            Aspose.Pdf.ColorType pageColorType = document.Pages[pageCount].ColorType;
            switch (pageColorType)
            {
                case Aspose.Pdf.ColorType.BlackAndWhite:
                    Console.WriteLine("Page # -" + pageCount + " is Black and white..");
                    break;
                case Aspose.Pdf.ColorType.Grayscale:
                    Console.WriteLine("Page # -" + pageCount + " is Gray Scale...");
                    break;
                case Aspose.Pdf.ColorType.Rgb:
                    Console.WriteLine("Page # -" + pageCount + " is RGB..", pageCount);
                    break;
                case Aspose.Pdf.ColorType.Undefined:
                    Console.WriteLine("Page # -" + pageCount + " Color is undefined..");
                    break;
            }
        }
    }
}