Estrai gli allegati dal PDF tramite C#

Come estrarre allegati da PDF a livello di codice con C#

Come estrarre gli allegati utilizzando la libreria .NET

Per estrarre gli allegati nel file PDF, useremo Aspose.PDF for .NET API che è un’API di manipolazione dei documenti ricca di funzionalità, potente e facile da usare per la piattaforma net. Apri il gestore di pacchetti NuGet, cerca Aspose.pdf e installa. È inoltre possibile utilizzare il seguente comando dalla console di Package Manager.

Package Manager Console

PM > Install-Package Aspose.PDF

Estrai allegati dal PDF C#


È necessario Aspose.PDF for .NET per provare il codice nel proprio ambiente.

  1. Ottieni la raccolta di file incorporati.
  2. Ottieni il conteggio dei file incorporati.
  3. Scorri la raccolta per ottenere tutti gli allegati.
  4. Verificare se l’oggetto parametro contiene i parametri.
  5. Ottieni l’allegato e scrivi su file o stream.

Estrai allegato dal documento 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;
}