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

static void PrintFileDetails(Aspose.Pdf.FileSpecification fileSpecification)
{
    Console.WriteLine($"Name: {fileSpecification.Name}");
    Console.WriteLine($"Description: {fileSpecification.Description}");
    Console.WriteLine($"Mime Type: {fileSpecification.MIMEType}");

    if (fileSpecification.Params != null)
    {
        Console.WriteLine($"CheckSum: {fileSpecification.Params.CheckSum}");
        Console.WriteLine($"Creation Date: {fileSpecification.Params.CreationDate}");
        Console.WriteLine($"Modification Date: {fileSpecification.Params.ModDate}");
        Console.WriteLine($"Size: {fileSpecification.Params.Size}");
    }
}

var inputFile = Path.Combine(dataDir, "GetAlltheAttachments.pdf");
var pdfDocument = new Aspose.Pdf.Document(inputFile);
var embeddedFiles = pdfDocument.EmbeddedFiles;
Console.WriteLine($"Total files: {embeddedFiles.Count}");

foreach (var fileSpecification in embeddedFiles)
{
    PrintFileDetails(fileSpecification);

    var outputFilePath = Path.Combine(dataDir, fileSpecification.Name);
    using var fileStream = File.OpenWrite(outputFilePath);
    fileSpecification.Contents.CopyTo(fileStream);
}