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

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