Portable Document Format (PDF) — это популярный и широко используемый формат документов, разработанный Adobe. PDF-документы могут содержать разнообразный контент, включая форматированный текст, изображения, аннотации, поля форм и т. д. Программный анализ PDF-документа является популярным вариантом использования, и существует несколько способов извлечения текста. Однако извлечение изображений из PDF-документа — сложная задача. В этой статье показано, как легко можно извлекать изображения из документов PDF программно на C# с помощью [GroupDocs.Parser for .NET](https://products.groupdocs. ком/парсер) API. Итак, начнем.

Действия по извлечению изображений из PDF-документа

1. Создайте новый проект.

2. Загрузите GroupDocs.Parser для .NET или установите его с помощью [NuGet](https://www.nuget.org/packages /Групповые Документы.Парсер).

3. Добавьте следующие пространства имен.

using GroupDocs.Parser;
using GroupDocs.Parser.Data;
using System.Drawing;
using System.Drawing.Imaging;

4. Загрузите документ PDF.

// Создайте экземпляр класса Parser
using (Parser parser = new Parser("sample.pdf"))
{
  // ваш код идет сюда.
}

5. Извлечение изображений из документа.

// Извлечь изображения
IEnumerable<PageImageArea> images = parser.GetImages();
// Проверьте, поддерживается ли извлечение изображений
if (images == null)
{
  Console.WriteLine("Images extraction isn't supported");
  return;
}

6. Получите доступ к каждому изображению из коллекции и сохраните его.

// Перебирать изображения
foreach (PageImageArea image in images)
{
  // Сохранить изображения
  Image.FromStream(image.GetImageStream()).Save(string.Format("{0}.Jpeg", counter++), ImageFormat.Jpeg);                    
}

Полный код

// Создайте экземпляр класса Parser
using (Parser parser = new Parser("C:\\candy.pdf"))
{
	// Извлечь изображения
	IEnumerable<PageImageArea> images = parser.GetImages();
	// Проверьте, поддерживается ли извлечение изображений
	if (images == null)
	{
		Console.WriteLine("Images extraction isn't supported");
		return;
	}
	
	int counter = 1;
	// Перебирать изображения
	foreach (PageImageArea image in images)
	{
		// Сохраните каждое изображение
		Image.FromStream(image.GetImageStream()).Save(string.Format("{0}.Jpeg", counter++), ImageFormat.Jpeg);                    
	}
}

Полученные результаты

PDF-документ

PDF-документ для извлечения изображений.

Извлеченные изображения

извлеченные изображения из PDF.

Полный список функций, предоставляемых GroupDocs.Parser для .NET API, см. в документации. Ваше здоровье!