Extraire les pièces jointes d’un document PDF via C#

Comment extraire des pièces jointes d’un PDF par programme avec C#

Comment extraire des pièces jointes à l'aide de la bibliothèque .NET

Afin d’extraire les pièces jointes dans un fichier PDF, nous utiliserons l’API Aspose.PDF for .NET qui est une API de manipulation de documents riche en fonctionnalités, puissante et facile à utiliser pour la plate-forme net. Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.pdf et installez. Vous pouvez également utiliser la commande suivante depuis la console du gestionnaire de packages.

Package Manager Console

PM > Install-Package Aspose.PDF

Extraire les pièces jointes du PDF C#


Vous avez besoin de Aspose.PDF pour .NET pour essayer le code dans votre environnement.

  1. Obtenez la collection de fichiers intégrés.
  2. Obtenez le nombre de fichiers intégrés.
  3. Parcourez la collection pour obtenir toutes les pièces jointes.
  4. Vérifiez si l’objet Parameter contient les paramètres.
  5. Récupérez la pièce jointe et écrivez-la dans un fichier ou un flux.

Extraire la pièce jointe d'un document PDF


    // Open document
    Document pdfDocument = new Document(dataDir + "GetAlltheAttachments.pdf");

    // Get embedded files collection
    EmbeddedFileCollection embeddedFiles = pdfDocument.EmbeddedFiles;

    // Get count of the embedded files
    Console.WriteLine("Total files : {0}", embeddedFiles.Count);

    int count = 1;

    // Loop through the collection to get all the attachments
    foreach (FileSpecification fileSpecification in embeddedFiles)
    {
        Console.WriteLine("Name: {0}", fileSpecification.Name);
        Console.WriteLine("Description: {0}",
        fileSpecification.Description);
        Console.WriteLine("Mime Type: {0}", fileSpecification.MIMEType);

        // Check if parameter object contains the parameters
        if (fileSpecification.Params != null)
        {
            Console.WriteLine("CheckSum: {0}",
            fileSpecification.Params.CheckSum);
            Console.WriteLine("Creation Date: {0}",
            fileSpecification.Params.CreationDate);
            Console.WriteLine("Modification Date: {0}",
            fileSpecification.Params.ModDate);
            Console.WriteLine("Size: {0}", fileSpecification.Params.Size);
        }

        // Get the attachment and write to file or stream
        byte[] fileContent = new byte[fileSpecification.Contents.Length];
        fileSpecification.Contents.Read(fileContent, 0,
        fileContent.Length);
        FileStream fileStream = new FileStream(dataDir + count + "_out" + ".txt",
        FileMode.Create);
        fileStream.Write(fileContent, 0, fileContent.Length);
        fileStream.Close();
        count+=1;
    }