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

Видобування зображень із документів у .NET

Тут будуть розглянуті такі теми:

API вилучення зображень, тексту та метаданих .NET

Аналізуйте документи та витягуйте дані в .NET

GroupDocs.Parser for .NET — це API для аналізу документів і вилучення даних. Він підтримує розбір документів і вилучення зображень, тексту та метаданих із текстових документів, електронних таблиць, презентацій, архівів та документів електронної пошти. У кінці статті згадуються формати документів, які підтримуються API для вилучення зображень.

У цій статті ми будемо використовувати цей API, тому я рекомендую завантажити його двійкові файли або встановити API з NuGet, щоб підготувати середовище.

Видобування зображень із PDF-документів у C#

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

Ви можете легко отримати всі зображення з будь-якого документа PDF, виконавши ці прості дії.

  1. Створіть екземпляр об’єкта класу Parser із вихідним документом.
  2. Викличте метод GetImages класу Parser, щоб отримати колекцію всіх зображень в об’єктах PageImageArea.
  3. Перебирайте PageImageArea, щоб отримати кожне зображення.
  4. Збережіть зображення на диску за допомогою методу 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++;
    }
}
Витягнуті зображення з документа за допомогою GroupDocs.Parser

Вилучення зображень із файлів 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
Портативні документи PDF
Електронні листи EML, EMLX, MSG
Архів ZIP

Докладніше про GroupDocs.Parser

Давайте поговоримо ще трохи @ Безкоштовний форум підтримки

Схожі статті