如何在 .NET 中提取多个 PDF 中的所有图像

如何在 .NET 中提取多个 PDF 中的所有图像

从一个单一的图像中提取 PDF 这个指南显示如何使用 Aspose.PDF.ImageExtractor Plugin for .NET 自动从多个 PDF 中大规模图像提取.

Batch 处理工作流

  • 安排您的输入: 将所有源 PDF 文件放入一个单一文件夹(例如., /Assets/InputPDFs).
  • 设计输出文件夹: 可选,为每个 PDF 创建字段或将所有图像集成到一个单一目录中.
  • Set Up the Batch Script: 使用 Aspose.PDF.Plugin’s ImageExtractor 在一个圈子处理每个文件.

通过文件(代码示例)

using Aspose.Pdf.Plugins;
using System.IO;

string inputDir = @"C:\Assets\InputPDFs";
string outputBaseDir = @"C:\Assets\ExtractedImages";

string[] pdfFiles = Directory.GetFiles(inputDir, "*.pdf");

foreach (var pdfFile in pdfFiles)
{
    // Optionally create a unique folder for each PDF
    string pdfName = Path.GetFileNameWithoutExtension(pdfFile);
    string imageOutputDir = Path.Combine(outputBaseDir, pdfName);
    Directory.CreateDirectory(imageOutputDir);

    // Configure extractor
    var extractor = new ImageExtractor();
    var options = new ImageExtractorOptions();
    options.AddInput(new FileDataSource(pdfFile));

    // Process extraction
    var resultContainer = extractor.Process(options);
    int imageIndex = 0;
    foreach (var imageResult in resultContainer.ResultCollection)
    {
        string imgPath = Path.Combine(imageOutputDir, $"img_{++imageIndex}.png");
        File.WriteAllBytes(imgPath, imageResult.ToFile());
    }
    Console.WriteLine($"Extracted {imageIndex} images from {pdfName}");
}

输出管理与先进提示

  • 文件夹组织: 使用每个 PDF 的独特文件,或根据源文件名和页面命名图像.
  • 可扩展: 将输入文件分成平行处理组,如果处理 100 或 1000 个 PDF 文件.
  • 格式: 默认情况下,提取的图像存储在其原始形式(例如,PNG,JPEG.
  • 登录: 为审计和错误跟踪处理的 PDF / 图像保存日志.

用例

  • 大规模数字档案/图像迁移
  • 自动图形资产提取出版或网页
  • 法律或法律证据从文件收集的准备

经常提出的问题

**Q:我如何将图像存储在自定义文件夹中,或者使用自定的名称?**答: 使用 PDF 文件名(没有扩展)创建字符串,并根据上面的示文索引图像.

**Q:我可以在一套中处理数百或数千个PDF文件吗?**答:是的!对于非常大的工作,把你的输入分成较小的组合,并在平行运行,以获得最佳速度.

**Q:所有图像类型都被提取(JPEG、PNG等.)?**答:是的 - 提取器保留原始格式,除非您在提交后进行处理/转换.

Pro 提示: 提取后,使用 优化者 减少存储足迹,或 分束器 在提取之前处理PDF.

 中文