У попередній публікації ми обговорювали, як видобувати зображення з документів у Java. Сьогодні ми спробуємо досягти тієї ж мети за допомогою C#. Не хвилюйтеся, якщо ви не відвідали останню публікацію. У цій статті ми навчимося програмно видобувати зображення з документів PDF, Excel, PowerPoint і Word у програмі C# за допомогою аналізу документів .NET API.
Тут будуть розглянуті такі теми:
- API вилучення зображень, тексту та метаданих .NET
- Вилучення зображень із документів PDF
- Витягувати зображення з документів Word, Excel, PowerPoint
- Витяг зображення з певної сторінки
- Підтримувані формати для вилучення зображень
API вилучення зображень, тексту та метаданих .NET
GroupDocs.Parser for .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#
Якщо ви хочете отримати зображення з певної сторінки документа, це можна легко зробити за допомогою наведених нижче кроків і коду C#.
- Отримайте інформацію про документ за допомогою методу GetDocumentInfo.
- З інформації про документ вилучіть загальну кількість PageCount та іншу інформацію.
- Скористайтеся методом GetImages(pageIndex) і передайте йому індекс цільової сторінки.
- Щоб зберегти отримані зображення, перегляньте колекцію зображень і збережіть окреме зображення за допомогою методу Save.
// Видобуток зображень із певної сторінки 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#
Нижче наведено формати документів, які підтримуються API GroupDocs.Parser for .NET для вилучення зображень.
Тип документа | Формати файлів |
---|---|
Текстові документи | 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 | Безкоштовний онлайн-додаток
Давайте поговоримо ще трохи @ Безкоштовний форум підтримки