通过 C# 从 PDF 中提取附件

如何使用 C# 以编程方式从 PDF 中提取附件。

如何使用 .NET 库提取附件

为了提取 PDF 文件中的附件,我们将使用 Aspose.PDF for .NET API,这是一款功能丰富、功能强大且易于使用的适用于 net 平台的文档处理 API。打开 NuGet 软件包管理器,搜索 aspose.pdf 然后安装。您也可以从软件包管理器控制台使用以下命令。

Package Manager Console

PM > Install-Package Aspose.PDF

从 PDF 中提取附件 C#


你需要 Aspose.PDF for .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);
}