Extraire les pièces jointes d’un 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;
}