В предыдущем посте мы обсуждали, как извлекать изображения из документов в Java. Сегодня мы попытаемся достичь той же цели, используя C#. Не беспокойтесь, если вы не посетили последний пост. В этой статье мы научимся программно извлекать изображения из документов PDF, Excel, PowerPoint и Word в приложении C#, используя .NET API для анализа документов.

Здесь будут затронуты следующие темы:
- Извлечение изображений, текста и метаданных .NET API
- Извлечение изображений из PDF-документов
- Извлечение изображений из документов Word, Excel, PowerPoint
- Извлечь изображение с определенной страницы
- Поддерживаемые форматы для извлечения изображений
Извлечение изображений, текста и метаданных .NET API

GroupDocs.Parser for .NET — это .NET API для разбора документов и извлечения данных. Он поддерживает анализ документов и извлечение изображений, текста и метаданных из текстовых документов, электронных таблиц, презентаций, архивов и отправить документы. В конце статьи упомянуты форматы документов, поддерживаемые API для извлечения изображений.
В этой статье мы будем использовать этот API, поэтому я бы рекомендовал скачать его двоичные файлы или установить API из NuGet для подготовки среды.
Извлечение изображений из PDF-документов в C#

Вы можете легко получить все изображения из любого документа PDF, выполнив следующие простые шаги.
- Создайте объект класса Parser с исходным документом.
- Вызовите метод GetImages класса Parser, чтобы получить коллекцию всех изображений в объектах PageImageArea.
- Переберите PageImageArea, чтобы получить каждое изображение.
- Сохраняйте изображения на диск, используя метод Save PageImageArea.
Извлеченные изображения можно сохранить в форматах BMP, GIF, JPEG, PNG и WebP. Полный код показан ниже, чтобы продемонстрировать все шаги.
// Извлечение изображений из Word, Excel, PPT, PDF на C# с помощью GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
IEnumerable<PageImageArea> images = parser.GetImages();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Перебирать полученные изображения
foreach (PageImageArea image in images)
{
// Сохранить изображение и распечатать индекс страницы, прямоугольник и тип изображения:
Console.WriteLine(string.Format("Page: {0}, R: {1}, Type: {2}", image.Page.Index, image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}

Извлечение изображений из файлов Word, Excel, PowerPoint на C#
Не ограничиваясь только форматом PDF, мы можем извлечь все изображения из текстовых документов, электронных таблиц, презентаций с неизменной кодовой базой. Просто измените путь к исходному документу с расширением файла, ваш документ будет проанализирован для извлечения и сохранения всех изображений на диск.
using (Parser parser = new Parser("path/document.docx")) // Word Document
// using (Parser parser = new Parser("path/document.xlsx")) // Excel Spreadhseet
// using (Parser parser = new Parser("path/document.pptx")) // Presentation
// using (Parser parser = new Parser("path/document.pdf")) // PDF Document
Извлечение изображения из определенной страницы документа в С#
Если вы хотите извлечь изображения с определенной страницы документа, это можно легко сделать с помощью приведенных ниже шагов и кода C#.
- Получить информацию о документе с помощью метода GetDocumentInfo.
- Из информации о документе выньте общее количество PageCount и другую информацию.
- Используйте метод GetImages(pageIndex) и передайте ему индекс целевой страницы.
- Чтобы сохранить полученные изображения, просмотрите коллекцию изображений и сохраните отдельное изображение, используя метод Сохранить.
// Извлечение изображений с определенной страницы Word, Excel, PowerPoint, PDF на C# с помощью GroupDocs.Parser for .NET
using (Parser parser = new Parser("path/document.pdf"))
{
// Получить информацию о документе
IDocumentInfo documentInfo = parser.GetDocumentInfo();
ImageOptions options = new ImageOptions(ImageFormat.Png);
int imageNumber = 0;
// Перебирать страницы
for (int pageIndex = 0; pageIndex < documentInfo.PageCount; pageIndex++)
{
// Распечатать номер страницы
Console.WriteLine(string.Format("Page {0}/{1}", pageIndex + 1, documentInfo.PageCount));
// Итерация по изображениям. Игнорирование нулевой проверки в примере
foreach (PageImageArea image in parser.GetImages(pageIndex))
{
// Печать прямоугольника и типа изображения
Console.WriteLine(string.Format("R: {0}, Text: {1}", image.Rectangle, image.FileType));
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".png", options);
imageNumber++;
}
}
}
Поддерживаемые форматы для извлечения изображений в C#
Ниже приведены форматы документов, поддерживаемые GroupDocs.Parser for .NET API для извлечения изображений.
Тип документа | Форматы файлов |
---|---|
Текстовые документы | DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF |
Таблицы | XLS, XLSX, XLSM, XLSB, XLT, XLTX, XLTM, ODS, OTS, XLA, XLAM, NUMBERS |
Презентации | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
Портативные документы | |
Электронная почта | EML, EMLX, MSG |
Архивы | ZIP |
Подробнее о GroupDocs.Parser
- Документация
- Примеры исходного кода
- Справочник по API
- Семья (Локальные API| Облачные API | Бесплатное онлайн-приложение
Давайте еще поговорим на Форум бесплатной поддержки