Portable Document Format (PDF) — популярный и широко используемый формат документов, разработанный Adobe. PDF-документы могут содержать разнообразный контент, включая форматированный текст, изображения, аннотации, поля форм и т. д. Программный анализ PDF-документов является популярным вариантом использования, и существует несколько способов извлечения текста. Однако извлечение изображений из PDF-документа — сложная задача. В этой статье показано, как легко можно программно извлекать изображения из PDF-документов на C#.
.NET API для извлечения изображений из файлов PDF
GroupDocs.Parser for .NET API будет играть свою роль в извлечении изображений из файлов PDF. Наряду с PDF API поддерживает анализ и извлечение изображений из текстовых документов, электронных таблиц, электронных книг, презентаций, электронных писем, ZIP-архивов и многих других форматов документов.
Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в своем приложении .NET через NuGet.
PM> Install-Package GroupDocs.Parser
Действия по извлечению изображений из документа PDF с помощью C#
Давайте быстро рассмотрим шаг за шагом, как получить изображения из файла PDF, используя несколько строк кода C#.
- Создайте новый проект.
- Загрузите API, как указано выше, или обновите его до последней версии.
- Добавьте следующие пространства имен:
using System;
using System.Collections.Generic;
using System.Text;
using GroupDocs.Parser.Data;
- Загрузите документ PDF с помощью класса Parser.
// Создайте экземпляр класса Parser
using (Parser parser = new Parser("path/document.pdf"))
{
// ваш код идет сюда.
}
- Извлеките изображения из документа с помощью метода GetImages.
// Извлечь изображения
IEnumerable<PageImageArea> images = parser.GetImages();
// Проверьте, поддерживается ли извлечение изображений
if (images == null)
{
Console.WriteLine("Images extraction isn't supported");
return;
}
- Получите доступ к каждому изображению из коллекции и сохраните его с помощью метода Save.
// Перебирать полученные изображения
foreach (PageImageArea image in images)
{
// Сохранить изображения
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", new ImageOptions(ImageFormat.Jpeg));
imageNumber++;
}
Вы можете сохранять изображения в различных форматах, таких как JPG, PNG, BMP, WebP или GIF.
Полный код C# — извлечение изображения из PDF
Вот полный код, который позволит вам получить все изображения из файла PDF.
// Извлечение изображений из PDF с помощью C#
using (Parser parser = new Parser("path/document.pdf"))
{
IEnumerable<PageImageArea> images = parser.GetImages();
// Проверьте, поддерживается ли извлечение изображений
if (images == null)
{
Console.WriteLine("Images extraction isn't supported");
return;
}
ImageOptions options = new ImageOptions(ImageFormat.Jpeg);
int imageNumber = 0;
// Перебирать полученные изображения
foreach (PageImageArea image in images)
{
// Сохранить изображения
image.Save("imageFilePath/image-" + imageNumber.ToString() + ".jpeg", options);
imageNumber++;
}
}
Результаты
Образец PDF-документа
Извлеченные изображения
Если вам нужно, в отдельной статье также объясняется, как вы можете извлекать изображения из любой конкретной страницы PDF-документа с помощью C#.
Прочитайте больше
Вы можете узнать больше об API извлечения данных .NET, используя его документацию. Кроме того, вы можете поделиться с нами своими вопросами через наш форум.