Устройства и визуализация
Устройства и Рендеринг
Aspose.PDF FOSS for .NET предоставляет классы устройств, которые рендерят страницы PDF в растровые изображения. Каждое устройство ориентировано на конкретный формат — TIFF, JPEG, PNG или BMP — и принимает параметры разрешения и качества.
Рендеринг в PNG
PngDevice преобразует страницу PDF в изображение PNG.
using var doc = Document.Open(pdfBytes);
var device = new PngDevice(new Resolution(300));
using var stream = File.Create("page1.png");
device.Process(doc.Pages[1], stream);Рендеринг в JPEG
JpegDevice преобразует страницу в JPEG с настраиваемым качеством.
var device = new JpegDevice(new Resolution(150), 90); // 90% quality
using var stream = File.Create("page1.jpg");
device.Process(doc.Pages[1], stream);Рендеринг в TIFF
TiffDevice преобразует одну или несколько страниц в многостраничное изображение TIFF.TiffSettings управляет сжатием, глубиной цвета и формой.
var settings = new TiffSettings();
var device = new TiffDevice(new Resolution(200), settings);
using var stream = File.Create("document.tiff");
device.Process(doc, stream); // All pagesРендеринг в BMP
BmpDevice преобразует страницу в несжатый битмап.
var device = new BmpDevice(new Resolution(300));
using var stream = File.Create("page1.bmp");
device.Process(doc.Pages[1], stream);Контроль разрешения
Все устройства принимают объект Resolution, указывающий DPI.
var lowRes = new Resolution(72); // Screen quality
var midRes = new Resolution(150); // Print draft
var hiRes = new Resolution(300); // Print qualityИзвлечение текста с помощью TextDevice
TextDevice извлекает текст со страницы, используя конвейер обработки устройства.
var device = new TextDevice();
using var stream = new MemoryStream();
device.Process(doc.Pages[1], stream);
string text = System.Text.Encoding.UTF8.GetString(stream.ToArray());Советы и лучшие практики
- Используйте 300 DPI для вывода печатного качества и 72–150 DPI для экрана/веб‑использования.
TiffDeviceможет обработать весь документ за один вызов; другие устройства обрабатывают по одной странице за раз.- Значения качества JPEG находятся в диапазоне от 0 до 100; 85–90 обеспечивают хороший баланс между качеством и размером файла.
- Для пакетного преобразования перебирайте страницы и обрабатывайте каждую с помощью соответствующего устройства.
- Освобождайте потоки после обработки, чтобы освободить файловые дескрипторы.
Распространённые проблемы
| Issue | Cause | Fix |
|---|---|---|
| Image is blurry | Resolution too low | Increase DPI in the Resolution constructor |
| TIFF file too large | Uncompressed or high-resolution settings | Configure TiffSettings compression |
| Output stream is empty | Process not called or page index wrong | Verify page exists and Process completes |
Часто задаваемые вопросы
Могу ли я отобразить определённый диапазон страниц в TIFF?
Да. TiffDevice.Process имеет перегрузки, принимающие номера начальной и конечной страниц.
Какие типы сжатия поддерживает TiffSettings?
LZW, CCITT3, CCITT4, RLE, None и другие стандартные типы сжатия TIFF.
Могу ли я управлять размерами выходного изображения?
Да. Конструкторы Device принимают параметры ширины и высоты в дополнение к разрешению или вместо него.
Сводка справки API
| Class / Method | Description |
|---|---|
PngDevice | Отрисовать страницу в формате PNG |
JpegDevice | Отрисовать страницу в формате JPEG с контролем качества |
TiffDevice | Отрисовать страницы в многостраничный TIFF |
BmpDevice | Отрисовать страницу в формате BMP |
ImageDevice | Базовый класс для всех устройств отрисовки изображений |
DocumentDevice | Базовый класс для устройств, обрабатывающих целые документы |
TextDevice | Извлечь текст через конвейер устройства |
Resolution | Указание DPI для отрисовки |
TiffSettings | Конфигурация вывода TIFF (сжатие, глубина цвета) |