3

Как конвертировать Word в PNG и JPEG на C#

Как конвертировать Word в PNG и JPEG на C#

Введение

Конвертация документов Word (DOC/DOCX) в изображения форматов PNG и JPEG полезна для обмена контентом без необходимости редактирования или для сохранения форматирования документа. В этой статье мы рассмотрим, как выполнить такую конвертацию в C# с использованием библиотеки для обработки документов Word в .NET.

C# библиотека для конвертации Word в изображения

Spire.Doc for .NET предоставляет эффективные методы для преобразования документов Word в изображения. Библиотека поддерживает конвертацию целых документов или отдельных страниц в высококачественные изображения форматов PNG, JPEG и BMP. Она проста в интеграции и предлагает гибкий контроль над разрешением для лучшего качества вывода.

Установка Spire.Doc через NuGet

Для использования Spire.Doc в вашем проекте необходимо установить его через NuGet Package Manager:

  1. Откройте Visual Studio и ваш проект

  2. Перейдите в Tools → NuGet Package Manager → Manage NuGet Packages for Solution

  3. Найдите "Spire.Doc" во вкладке Browse

  4. Выберите пакет и нажмите Install

Альтернативно, вы можете установить его через Package Manager Console, используя команду:

Install-Package Spire.Doc

Эта библиотека предоставляет бесплатную версию с ограниченным функционалом, которую также можно установить через NuGet:

Install-Package FreeSpire.Doc

После установки вы можете начать конвертировать документы Word в изображения, используя примеры кода ниже.

Конвертация DOC/DOCX в PNG

Следующий фрагмент кода демонстрирует, как преобразовать документ Word в изображения PNG:

using Spire.Doc;

using System;

using System.Drawing;

using System.Drawing.Imaging;

using Spire.Doc.Documents;

namespace ConvertWordToPng

{

class Program

{

static void Main(string[] args)

{

// Создаем объект Document

Document doc = new Document();

// Загружаем документ Word

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.docx");

// Конвертируем весь документ в отдельные изображения

Image[] images = doc.SaveToImages(ImageType.Metafile);

// Проходим по коллекции изображений

for (int i = 0; i < images.Length; i++)

{

// Устанавливаем разрешение для конкретного изображения

Image newimage = ResetResolution(images[i] as Metafile, 150);

// Сохраняем изображение в формате PNG

string outputfile = String.Format("Image-{0}.png", i);

newimage.Save("C:\\Users\\Administrator\\Desktop\\Images\\" + outputfile, ImageFormat.Png);

}

}

// Метод для установки разрешения изображения

public static Image ResetResolution(Metafile mf, float resolution)

{

int width = (int)(mf.Width * resolution / mf.HorizontalResolution);

int height = (int)(mf.Height * resolution / mf.VerticalResolution);

Bitmap bmp = new Bitmap(width, height);

bmp.SetResolution(resolution, resolution);

using (Graphics g = Graphics.FromImage(bmp))

{

g.DrawImage(mf, Point.Empty);

}

return bmp;

}

}

}

Пояснение:

  1. Загрузка документа: Класс Document загружает файл Word по указанному пути

  2. Конвертация в изображения: Метод SaveToImages() преобразует каждую страницу в изображение Metafile

  3. Настройка разрешения: Метод ResetResolution() обеспечивает высокое DPI (150 в данном случае)

  4. Сохранение в PNG: Каждое изображение сохраняется в формате PNG с последовательным именем файла

Конвертация DOC/DOCX в JPEG

Следующий фрагмент кода преобразует документ Word в изображения JPEG:

using Spire.Doc;

using Spire.Doc.Documents;

using System;

using System.Drawing;

using System.Drawing.Imaging;

namespace ConvertWordToJPG

{

class Program

{

static void Main(string[] args)

{

// Создаем объект Document

Document doc = new Document();

// Загружаем документ Word

doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\input.docx");

// Конвертируем весь документ в отдельные изображения

Image[] images = doc.SaveToImages(ImageType.Bitmap);

// Проходим по коллекции изображений

for (int i = 0; i < images.Length; i++)

{

// Сохраняем изображение в формате JPEG

string outputfile = String.Format("Image-{0}.jpg", i);

images[i].Save("C:\\Users\\Administrator\\Desktop\\Images\\" + outputfile, ImageFormat.Jpeg);

}

}

}

}

Пояснение:

  1. Загрузка документа: Класс Document загружает файл Word аналогично конвертации в PNG

  2. Конвертация в Bitmap: Метод SaveToImages() преобразует страницы в изображения Bitmap

  3. Сохранение в JPEG: Каждое изображение сохраняется в формате JPEG с последовательным именем файла

Заключение

Используя Spire.Doc for .NET, конвертация документов Word в PNG или JPEG становится простой задачей. Библиотека эффективно обрабатывает рендеринг документов и предоставляет гибкость в настройке разрешения и формата изображений. Независимо от того, нужны ли вам высококачественные PNG или сжатые JPEG, Spire.Doc упрощает процесс конвертации на C#.