Dispositivos e Renderização
Dispositivos e Renderização
Aspose.PDF FOSS for .NET fornece classes de dispositivo que renderizam páginas PDF em imagens raster. Cada dispositivo tem como alvo um formato específico — TIFF, JPEG, PNG ou BMP — e aceita parâmetros de resolução e qualidade.
Renderização para PNG
PngDevice converte uma página PDF em uma imagem 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);Renderização para JPEG
JpegDevice converte uma página para JPEG com qualidade configurável.
var device = new JpegDevice(new Resolution(150), 90); // 90% quality
using var stream = File.Create("page1.jpg");
device.Process(doc.Pages[1], stream);Renderização para TIFF
TiffDevice converte uma ou mais páginas em uma imagem TIFF multipágina.TiffSettings controla compressão, profundidade de cor e forma.
var settings = new TiffSettings();
var device = new TiffDevice(new Resolution(200), settings);
using var stream = File.Create("document.tiff");
device.Process(doc, stream); // All pagesRenderização para BMP
BmpDevice converte uma página em um bitmap não compactado.
var device = new BmpDevice(new Resolution(300));
using var stream = File.Create("page1.bmp");
device.Process(doc.Pages[1], stream);Controle de resolução
Todos os dispositivos aceitam um objeto Resolution que especifica DPI.
var lowRes = new Resolution(72); // Screen quality
var midRes = new Resolution(150); // Print draft
var hiRes = new Resolution(300); // Print qualityExtração de texto via TextDevice
TextDevice extrai texto de uma página usando o pipeline de processamento de dispositivo.
var device = new TextDevice();
using var stream = new MemoryStream();
device.Process(doc.Pages[1], stream);
string text = System.Text.Encoding.UTF8.GetString(stream.ToArray());Dicas e Melhores Práticas
- Use 300 DPI para saída de qualidade de impressão e 72-150 DPI para uso em tela/web.
TiffDevicepode processar o documento inteiro em uma única chamada; outros dispositivos processam uma página por vez.- Os valores de qualidade JPEG variam de 0-100; 85-90 fornecem um bom equilíbrio entre qualidade e tamanho do arquivo.
- Para conversão em lote, itere as páginas e processe cada uma com o dispositivo apropriado.
- Dispose streams após o processamento para liberar os manipuladores de arquivos.
Problemas Comuns
| Problema | Causa | Solução |
|---|---|---|
| A imagem está borrada | Resolução muito baixa | Aumente o DPI no construtor Resolution |
| Arquivo TIFF muito grande | Configurações sem compressão ou alta resolução | Configure a compressão TiffSettings |
| O fluxo de saída está vazio | Process não chamado ou índice de página errado | Verifique se a página existe e Process é concluído |
Perguntas Frequentes
Posso renderizar um intervalo de páginas específico para TIFF?
Sim. TiffDevice.Process tem sobrecargas que aceitam números de página inicial e final.
Quais tipos de compressão o TiffSettings suporta?
LZW, CCITT3, CCITT4, RLE, Nenhum e outros tipos padrão de compressão TIFF.
Posso controlar as dimensões da imagem de saída?
Sim. Os construtores de Device aceitam parâmetros de largura e altura além de ou em vez da resolução.
Resumo da Referência da API
| Classe / Método | Descrição |
|---|---|
PngDevice | Renderizar uma página no formato PNG |
JpegDevice | Renderizar uma página no formato JPEG com controle de qualidade |
TiffDevice | Renderizar páginas em TIFF multipágina |
BmpDevice | Renderizar uma página no formato BMP |
ImageDevice | Classe base para todos os dispositivos de renderização de imagem |
DocumentDevice | Classe base para dispositivos que processam documentos inteiros |
TextDevice | Extrair texto via o pipeline do dispositivo |
Resolution | Especificação de DPI para renderização |
TiffSettings | Configuração de saída TIFF (compressão, profundidade de cor) |