通过 C# 从 PDF 中提取附件

如何使用 C#以程式設計方式從 PDF 中提取附件。

如何使用 .NET 庫提取附件

為了提取PDF檔中的附件,我們將使用[Aspose.PDF用於.NET](https://products.aspose.com/pdf/net)API,這是一個功能豐富,功能強大且易於使用的文檔操作API,適用於 net 平臺。打開 [NuGet](https://www.nuget.org/packages/aspose.pdf) 包管理器,搜索“.PDF”並安裝。您也可以從程式包管理器主控台使用以下命令。

Package Manager Console

PM > Install-Package Aspose.PDF

從 PDF C#中提取附件


您需要 [Aspose.PDF for .NET](https://releases.aspose.com/pdf/net) 在您的環境中嘗試代碼。

  1. 取得嵌入文件集合。
  2. 取得嵌入的文件數量。
  3. 循環遍歷集合以取得所有附件。
  4. 檢查參數物件是否包含參數。
  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);
}