Эта страница может содержать автоматически переведенный текст.
Преобразование PDF в изображение в C# и VB.NET
Иногда требуется преобразовать PDF в изображения. Например, может понадобиться создавать миниатюры из PDF или выполнять оптическое распознавание символов (OCR) для некоторых PDF-документов.
Вы можете использовать библиотеку Docotic.Pdf для преобразования PDF-документов в изображения в проектах C# и VB.NET. Библиотека на 100% управляемая и не имеет внешних зависимостей. Она не использует System.Drawing.dll и GDI+ для растеризации PDF. Поэтому вы получите стабильный результат на Windows, Linux, macOS, iOS и Android.
Библиотека доступна на NuGet и на нашем сайте. Получите библиотеку и бесплатный лицензионный ключ с ограниченным сроком действия на странице Скачать C# .NET библиотеку PDF.
Docotic.Pdf предоставляет множество возможностей для преобразования PDF в изображения. Также он может рендерить и печатать PDF-документы. Давайте посмотрим, как можно преобразовывать PDF в изображения с помощью библиотеки Docotic.Pdf.

Сохранение страницы PDF как изображения PNG, JPG или TIFF
Библиотека Docotic.Pdf позволяет преобразовывать страницы PDF в изображения PNG, JPEG или TIFF. Вы можете записывать полученные изображения в поток или файл. Этот фрагмент C# сохраняет страницы PDF в изображения PNG с белым фоном и разрешением 300x300 dpi:
using BitMiracle.Docotic.Pdf;
using var pdf = new PdfDocument("your_document.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;
for (int i = 0; i < pdf.PageCount; ++i)
pdf.Pages[i].Save($"page_{i}.png", options);
Вы можете указать библиотеке создавать изображения JPEG или TIFF вместо PNG с помощью свойства PdfDrawOptions.Compression. Следующий фрагмент показывает, как переключиться на создание изображений JPEG:
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateJpeg();
Связанные примеры на C# и VB.NET доступны на GitHub.
PDF-документ в многостраничный TIFF в .NET
Вы можете сохранить весь документ в многостраничное TIFF-изображение с помощью метода PdfDocument.SaveAsTiff. Вот пример на C# для преобразования PDF в TIFF:
using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
pdf.SaveAsTiff("result.tiff", options);
Скачайте и попробуйте пример Сохранить PDF как многостраничный TIFF из GitHub. Там доступны версии на C# и VB.NET.
Создание миниатюр из PDF
С помощью библиотеки Docotic.Pdf можно создавать миниатюры страниц PDF. Этот пример на C# создает миниатюру 200x200 пикселей из первой страницы заданного PDF и записывает миниатюру в поток памяти:
using var pdf = new PdfDocument("document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateFitSize(new PdfSize(200, 200), false);
options.BackgroundColor = new PdfGrayColor(100);
using var stream = new MemoryStream();
pdf.Pages[0].Save(stream, options);
Вы также можете использовать методы PdfDrawOptions.CreateFitWidth или PdfDrawOptions.CreateFitHeight для создания миниатюр заданной ширины или высоты.
Преобразование PDF в битональные или оттенки серого изображения в .NET
Библиотека может преобразовывать PDF-документы в битональные (черно-белые) TIFF-изображения. Этот пример показывает, как создать битональное TIFF-изображение из PDF-документа в C#:
using var pdf = new PdfDocument("colored.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
options.Compression = ImageCompressionOptions.CreateTiff().SetBitonal();
pdf.SaveAsTiff("bitonal.tiff", options);
Вы также можете указать пороговое значение при использовании метода TiffImageCompressionOptions.SetBitonalThreshold. Пороговое значение определяет, как преобразовывать цвета в градациях серого, RGB или CMYK в черно-белые.
Docotic.Pdf также поддерживает преобразование PDF в изображения PNG, JPG или TIFF в градациях серого. Просто используйте один из методов PngImageCompressionOptions.SetGrayscale, JpegImageCompressionOptions.SetGrayscale, TiffImageCompressionOptions.SetGrayscale, как в следующем фрагменте:
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreatePng().SetGrayscale();
Масштабирование PDF
Метод PdfDrawOptions.CreateZoom позволяет получить изображение страницы PDF с заданным уровнем масштабирования. Этот пример на C# преобразует страницу PDF в изображение с уровнем масштабирования 400%:
using var pdf = new PdfDocument(@"document.pdf");
PdfDrawOptions options = PdfDrawOptions.CreateZoom(400);
pdf.Pages[0].Save("zoomed.png", options);
Частичный рендеринг PDF в изображение
Вам может понадобиться преобразовать в изображение только часть страницы PDF. Например, чтобы разбить большую страницу PDF на тайлы. Или обрезать ненужное содержимое.
Этот код C# сохраняет изображение области 256x256 пунктов в левом верхнем углу страницы PDF:
using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.BackgroundColor = new PdfRgbColor(255, 255, 255);
PdfPage page = pdf.Pages[0];
PdfBox cropBoxBefore = page.CropBox;
page.CropBox = new PdfBox(0, cropBoxBefore.Height - 256, 256, cropBoxBefore.Height);
page.Save("part.png", options);
page.CropBox = cropBoxBefore;
Тайловый рендеринг PDF в изображение
Docotic.Pdf предоставляет встроенную поддержку тайлового рендеринга PDF в TIFF. Этот метод полезен, когда нужно обрабатывать большие страницы PDF с фиксированным объемом памяти.
Например, ваш PDF-документ содержит страницу размером 10000x10000 пунктов. Обычное преобразование этой страницы в изображение RGB с разрешением 300 DPI требует более 1 Gb (= 10000 * 10000 * 3 * 300 / 72.0 bytes) памяти для промежуточных несжатых данных RGB-изображения. При использовании тайлового рендеринга с тайлами 1024x1024 вы можете ограничить потребление памяти для несжатых данных RGB-изображения до 12 Mb (= 1024 * 1024 * 3 * 300 / 72.0 bytes).
Обратите внимание, что тайловое преобразование PDF в изображение работает медленнее, чем обычное преобразование. Для каждого тайла библиотеке нужно обрабатывать все операции страницы PDF, даже если некоторые из них не влияют на текущий тайл.
Этот пример на C# показывает, как преобразовать PDF в изображение, используя тайлы 512x512:
using var pdf = new PdfDocument("large.pdf");
PdfDrawOptions options = PdfDrawOptions.Create();
options.Compression = ImageCompressionOptions.CreateTiff().SetTileSize(512, 512);
options.BackgroundColor = new PdfGrayColor(100);
options.HorizontalResolution = 300;
options.VerticalResolution = 300;
pdf.Pages[0].Save("tiled.tiff", options);
Заключение
Библиотека Docotic.Pdf предоставляет различные возможности для преобразования PDF в изображения в .NET. Вы можете преобразовывать страницы PDF в изображения полного размера или миниатюры в форматах PNG, TIFF и JPEG. Также вы можете сохранять PDF-документы как многостраничные TIFF-файлы. Библиотека также может создавать битональные изображения и изображения в градациях серого.
Скачайте и попробуйте примеры PDF в изображение из GitHub.
Свяжитесь с нами, если у вас есть вопросы о преобразовании PDF в изображение.
Связанные ресурсы
- Рендеринг и печать PDF в C# и VB.NET статья
- Преобразование PDF в JPG в .NET статья
- PDF в изображение примеры