【问题标题】:Extract image from PDF using C#使用 C# 从 PDF 中提取图像
【发布时间】:2014-11-06 08:21:41
【问题描述】:

我在从 PDF 中提取图像时遇到问题。我尝试使用 GhostScript,但图像是用像素化的牙齿提取的,就像在对象边缘排列的那样。我没有尝试改进它。增加 DPI 时,提取的图像太大。提取时图像质量有所下降。

如果有人推荐执行此类操作的软件包,我将不胜感激 - 无论是付费还是免费。

【问题讨论】:

  • 我对 PdfSharp 有很好的经验。示例源代码可以在这里找到:pdfsharp.net/wiki/….
  • 我的项目也使用了 PdfSharp
  • 实际上任何通用 PDF 库都应该允许您以自然分辨率提取嵌入的位图。

标签: c# pdf image-processing ghostscript


【解决方案1】:

有足够多的通用 PDF 库可用于从 PDF 中提取图像。并非所有这些都提供了一种简单的方法。

作为Docotic.Pdf library的开发者之一,我可以推荐它来完成任务。

这是一个示例,展示了如何从 PDF 中提取所有图像:

static void ExtractImagesFromPdfPages()
{
    string path = "";
    using (PdfDocument pdf = new PdfDocument(path))
    {
        for (int i = 0; i < pdf.Pages.Count; i++)
        {
            for (int j = 0; j < pdf.Pages[i].Images.Count; j++)
            {
                string imageName = string.Format("page{0}-image{1}", i, j);
                string imagePath = pdf.Pages[i].Images[j].Save(imageName);
            }
        }
    }
}

库不会重新采样图像。它将以与 PDF 完全相同的方式保存它们。

【讨论】:

  • pdf.Pages[i].Images[j] 是返回页面资源中的所有图像还是返回页面上使用的图像?后者不一定包括资源中的所有图像,还包括内联图像和使用过的 xobjects 中的图像。
  • @mkl 它返回所有图像(内联和非内联)
  • 啊,那很好。仅仅来自页面资源的图像可能会产生误导。
猜你喜欢
  • 2010-12-05
  • 1970-01-01
  • 2012-02-01
  • 2013-12-22
  • 2015-07-01
  • 2011-08-22
  • 2019-10-15
相关资源
最近更新 更多