Конвертация PDF в различные форматы изображений в C#
Обзор
Эта статья объясняет, как конвертировать PDF в различные форматы изображений с помощью C#. Она охватывает следующие темы.
Формат изображения: TIFF
Формат изображения: BMP
Формат изображения: EMF
Формат изображения: JPG
Формат изображения: PNG
Формат изображения: GIF
Формат изображения: SVG
C# Конвертация PDF в изображение
Следующий фрагмент кода также работает с библиотекой Aspose.PDF.Drawing.
Aspose.PDF для .NET использует несколько подходов для конвертации PDF в изображение. Aspose.PDF для .NET использует несколько подходов для конвертации PDF в изображение.
В библиотеке есть несколько классов, которые позволяют использовать виртуальное устройство для преобразования изображений. DocumentDevice ориентирован на конвертацию всего документа, а ImageDevice - на конвертацию конкретной страницы.
Конвертация PDF с использованием класса DocumentDevice
Aspose.PDF для .NET позволяет конвертировать страницы PDF в изображения TIFF.
Класс TiffDevice (основанный на DocumentDevice) позволяет конвертировать страницы PDF в изображения TIFF. Этот класс предоставляет метод с именем Process
, который позволяет конвертировать все страницы в файле PDF в одно изображение TIFF.
Попробуйте конвертировать PDF в TIFF онлайн
Aspose.PDF для .NET представляет вам бесплатное онлайн-приложение “PDF в TIFF”, где вы можете изучить функциональность и качество его работы.
Конвертирование страниц PDF в один TIFF файл
Aspose.PDF для .NET объясняет, как конвертировать все страницы PDF файла в одно изображение TIFF:
Шаги: Конвертация PDF в TIFF на C#
- Создайте объект класса Document.
- Создайте объекты TiffSettings и TiffDevice.
- Вызовите метод TiffDevice.Process() для конвертации PDF документа в TIFF.
- Для настройки свойств выходного файла используйте класс TiffSettings.
Следующий пример кода показывает, как конвертировать все страницы PDF в одно изображение TIFF.
public static void ConvertPDFtoTIFF()
{
// Открыть документ
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Создать объект Resolution
Resolution resolution = new Resolution(300);
// Создать объект TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
SkipBlankPages = false
};
// Создать устройство TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Конвертировать определенную страницу и сохранить изображение в поток
tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}
Конвертирование одной страницы в изображение TIFF
Aspose.PDF для .NET позволяет конвертировать конкретную страницу PDF файла в изображение TIFF, используя перегруженную версию метода Process(..), который принимает номер страницы в качестве аргумента для конвертации. Следующий код показывает, как конвертировать первую страницу PDF в формат TIFF.
Шаги: Конвертация одной или конкретных страниц PDF в TIFF в C#
- Создайте объект класса Document.
- Создайте объекты TiffSettings и TiffDevice.
- Вызовите перегруженный метод TiffDevice.Process() с параметрами fromPage и toPage для конвертации страниц документа PDF в TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
// Открыть документ
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Создать объект Resolution
Resolution resolution = new Resolution(300);
// Создать объект TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
};
// Создать устройство TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Конвертировать конкретную страницу и сохранить изображение в поток
tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}
Используйте алгоритм Брэдли при конвертации
Aspose.PDF для .NET поддерживает функцию конвертации PDF в TIF с использованием сжатия LZW, а затем с использованием AForge можно применить бинаризацию. Однако один из клиентов запросил, чтобы для некоторых изображений получить порог с использованием Отсу, поэтому они также хотели бы использовать Брэдли.
public static void ConvertPDFtoTiffBradleyBinarization()
{
// Открыть документ
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
string outputImageFile = _dataDir + "resultant_out.tif";
string outputBinImageFile = _dataDir + "37116-bin_out.tif";
// Создать объект разрешения
Resolution resolution = new Resolution(300);
// Создать объект настроек TIFF
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.LZW,
Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
};
// Создать устройство TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Конвертировать определенную страницу и сохранить изображение в поток
tiffDevice.Process(pdfDocument, outputImageFile);
using (FileStream inStream = new FileStream(outputImageFile, FileMode.Open))
{
using (FileStream outStream = new FileStream(outputBinImageFile, FileMode.Create))
{
tiffDevice.BinarizeBradley(inStream, outStream, 0.1);
}
}
}
Конвертация PDF с использованием класса ImageDevice
ImageDevice
является предком для BmpDevice
, JpegDevice
, GifDevice
, PngDevice
и EmfDevice
.
- Класс BmpDevice позволяет конвертировать страницы PDF в изображения BMP.
- Класс EmfDevice позволяет конвертировать страницы PDF в изображения EMF.
- Класс JpegDevice позволяет конвертировать страницы PDF в изображения JPEG.
- Класс PngDevice позволяет конвертировать страницы PDF в изображения PNG.
- Класс GifDevice позволяет конвертировать страницы PDF в изображения GIF.
Давайте рассмотрим, как конвертировать страницу PDF в изображение. Давайте посмотрим, как конвертировать страницу PDF в изображение.
Класс BmpDevice
предоставляет метод под названием Process, который позволяет конвертировать определенную страницу PDF файла в формат изображения BMP. Другие классы имеют тот же метод. Таким образом, если нам нужно конвертировать страницу PDF в изображение, мы просто создаем экземпляр необходимого класса.
Следующие шаги и фрагмент кода на C# демонстрируют эту возможность
- Конвертировать PDF в BMP на C#
- Конвертировать PDF в EMF на C#
- Конвертировать PDF в JPG на C#
- Конвертировать PDF в PNG на C#
- Конвертировать PDF в GIF на C#
Шаги: PDF в Изображение (BMP, EMF, JPG, PNG, GIF) на C#
- Создайте экземпляр подкласса ImageDevice, например:
- BmpDevice (для конвертации PDF в BMP)
- EmfDevice (для конвертации PDF в Emf)
- JpegDevice (для конвертации PDF в JPG)
- PngDevice (для конвертации PDF в PNG)
- GifDevice (для конвертации PDF в GIF)
- Вызовите метод ImageDevice.Process() для выполнения конвертации PDF в изображение.
public static class ExampleConvertPdfToImage
{
private static readonly string _dataDir = @"C:\Samples\";
// BMP, JPEG, GIF, PNG, EMF
public static void ConvertPDFusingImageDevice()
{
// Создание объекта Resolution
Resolution resolution = new Resolution(300);
BmpDevice bmpDevice = new BmpDevice(resolution);
JpegDevice jpegDevice = new JpegDevice(resolution);
GifDevice gifDevice = new GifDevice(resolution);
PngDevice pngDevice = new PngDevice(resolution);
EmfDevice emfDevice = new EmfDevice(resolution);
Document document = new Document(_dataDir +
"ConvertAllPagesToBmp.pdf");
ConvertPDFtoImage(bmpDevice, "bmp", document);
ConvertPDFtoImage(jpegDevice,"jpeg", document);
ConvertPDFtoImage(gifDevice, "gif", document);
ConvertPDFtoImage(pngDevice, "png", document);
ConvertPDFtoImage(emfDevice, "emf", document);
}
}
public static void ConvertPDFtoImage(ImageDevice imageDevice,
string ext, Document pdfDocument)
{
for (int pageCount = 1; pageCount <= pdfDocument.Pages.Count; pageCount++)
{
using (FileStream imageStream =
new FileStream($"{_dataDir}image{pageCount}_out.{ext}",
FileMode.Create))
{
// Конвертация конкретной страницы и сохранение изображения в поток
imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Закрытие потока
imageStream.Close();
}
}
}
Попробуйте конвертировать PDF в PNG онлайн
В качестве примера того, как работают наши бесплатные приложения, пожалуйста, ознакомьтесь со следующей функцией.
Aspose.PDF для .NET представляет вам бесплатное онлайн приложение “PDF в PNG”, где вы можете исследовать функциональность и качество его работы.
Конвертация PDF с использованием класса SaveOptions
Эта часть статьи показывает, как конвертировать PDF в SVG с использованием C# и класса SaveOptions.
Попробуйте конвертировать PDF в SVG онлайн
Aspose.PDF для .NET представляет вам бесплатное онлайн приложение “PDF в SVG”, где вы можете исследовать функциональность и качество его работы.
Масштабируемая векторная графика (SVG) представляет собой семейство спецификаций основанного на XML формата файла для двумерной векторной графики, как статической, так и динамической (интерактивной или анимированной). Спецификация SVG является открытым стандартом, который разрабатывается Консорциумом Всемирной паутины (W3C) с 1999 года.
Изображения SVG и их поведение определяются в текстовых файлах XML. Это означает, что их можно искать, индексировать, программировать и при необходимости сжимать. Как файлы XML, изображения SVG могут быть созданы и отредактированы в любом текстовом редакторе, однако часто более удобно создавать их с помощью программ для рисования, таких как Inkscape.
Aspose.PDF для .NET поддерживает функцию конвертации изображения SVG в формат PDF, а также предлагает возможность конвертации файлов PDF в формат SVG. Aspose.PDF для .NET поддерживает функцию конвертации изображений SVG в формат PDF, а также предлагает возможность конвертировать файлы PDF в формат SVG.
Следующий фрагмент кода показывает шаги для конвертации файла PDF в формат SVG с помощью .NET.
Шаги: Конвертация PDF в SVG на C#
- Создайте объект класса Document.
- Создайте объект SvgSaveOptions с необходимыми настройками.
- Вызовите метод Document.Save() и передайте ему объект SvgSaveOptions для конвертации документа PDF в SVG.
public static void ConvertPDFtoSVG()
{
// Загрузка документа PDF
Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
// Создание объекта SvgSaveOptions
SvgSaveOptions saveOptions = new SvgSaveOptions
{
// Не сжимать изображение SVG в архив Zip
CompressOutputToZipArchive = false,
TreatTargetFileNameAsDirectory = true
};
// Сохранение результата в файлы SVG
document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}