Извлеките вложения из PDF с помощью C#

Как программно извлекать вложения из PDF с помощью C#

Как извлечь вложения с помощью библиотеки .NET

Чтобы извлечь вложения в PDF-файл, мы будем использовать Aspose.PDF для.NET API, который представляет собой многофункциональный, мощный и простой в использовании API для работы с документами для платформы net. Откройте менеджер пакетов NuGet, найдите Aspose.pdf и установите. Вы также можете использовать следующую команду из консоли Package Manager.

Package Manager Console

PM > Install-Package Aspose.PDF

Извлечение вложений из PDF C#


Вам нужен Aspose.PDF for .NET, чтобы опробовать код в своей среде.

  1. Получите коллекцию встроенных файлов.
  2. Получите количество встроенных файлов.
  3. Прокрутите коллекцию, чтобы получить все вложения.
  4. Проверьте, содержит ли объект parameter параметры.
  5. Получите вложение и запишите его в файл или поток.

Извлечь вложение из 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);
}