Extrahieren Sie Anhänge aus PDF über C#

Wie man mit C# Dateianhänge programmgesteuert aus PDF extrahiert

So extrahieren Sie Anlagen mithilfe der .NET Bibliothek

Um Anlagen in eine PDF-Datei zu extrahieren, verwenden wir die API Aspose.PDF for .NET, eine funktionsreiche, leistungsstarke und einfach zu verwendende API zur Dokumentenbearbeitung für die net Plattform. Öffnen Sie den NuGet -Paketmanager, suchen Sie nach Aspose.pdf und installieren Sie es. Sie können auch den folgenden Befehl von der Package Manager Console aus verwenden.

Package Manager Console

PM > Install-Package Aspose.PDF

Extrahiere Anlagen aus PDF C#


Sie benötigen Aspose.PDF for .NET, um den Code in Ihrer Umgebung auszuprobieren.

  1. Holen Sie sich eingebettete Dateisammlung.
  2. Ruft die Anzahl der eingebetteten Dateien ab.
  3. Blättern Sie durch die Sammlung, um alle Anhänge zu erhalten.
  4. Prüfen Sie, ob das Parameterobjekt die Parameter enthält.
  5. Holen Sie sich den Anhang und schreiben Sie in eine Datei oder einen Stream.

Anhang aus PDF-Dokument extrahieren


// 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;
}