Эта страница может содержать автоматически переведенный текст.
Сконвертировать PDF в изображение в C# и VB.NET
Бывают случаи, когда вам необходимо конвертировать PDF-файлы в изображения. Например, вам может потребоваться создать мини-изображения из PDF-файлов или выполнить оптическое распознавание символов (OCR) в некоторых PDF-документах.
Вы можете использовать библиотеку Docotic.Pdf для преобразования PDF-документов в изображения проектах на C# и VB.NET. Библиотека содержит на 100% managed код без внешних зависимостей. Она не использует System.Drawing.dll и GDI+ для растеризации PDF. Таким образом, вы получите одинаковый результат на Windows, Linux, macOS, iOS и Android.
9.5.17615-dev 14,813 прошло Всего загрузок NuGet 4,924,084Библиотека доступна на NuGet и на нашем сайте. Получите библиотеку и бесплатный ключ лицензии с ограниченным сроком действия на странице Скачать PDF библиотеку C# .NET.
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 = ..;
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 = ..;
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 Гб памяти (= 10000 * 10000 * 3 * 300 / 72,0 байт) памяти для данных промежуточного несжатого изображения RGB. Используя тайловый рендеринг с тайлами 1024x1024, вы можете ограничить потребление памяти для данных несжатого изображения RGB до 12 Мб (= 1024 * 1024 * 3 * 300 / 72,0 байт).
Обратите внимание, что плиточный ренедеринг 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 в изображение