Converter PDF para Diferentes Formatos de Imagem em C#
Visão Geral
Este artigo explica como converter PDF para diferentes formatos de imagem usando C#. Ele aborda os seguintes tópicos.
Formato de Imagem: TIFF
- C# PDF para TIFF
- C# Converter PDF para TIFF
- C# Converter Páginas Únicas ou Específicas do PDF para TIFF
Formato de Imagem: BMP
Formato de Imagem: EMF
- C# PDF para EMF
- C# Converter PDF para EMF
- C# Conversor de PDF para EMF
- Conversor de PDF para EMF em C#
Formato de Imagem: JPG
Formato de Imagem: PNG
Formato de Imagem: GIF
Formato de Imagem: SVG
C# Converter PDF para Imagem
O seguinte trecho de código também funciona com a biblioteca Aspose.PDF.Drawing.
Aspose.PDF para .NET utiliza várias abordagens para converter PDF em imagem. Aspose.PDF para .NET usa várias abordagens para converter PDF em imagem.
Existem várias classes na biblioteca que permitem usar um dispositivo virtual para transformar imagens. DocumentDevice é orientado para a conversão de todo o documento, mas ImageDevice - para uma página específica.
Converter PDF usando a classe DocumentDevice
Aspose.PDF para .NET torna possível converter páginas de PDF em imagens TIFF.
A classe TiffDevice (baseada em DocumentDevice) permite converter páginas de PDF em imagens TIFF. Esta classe fornece um método chamado Process
que permite converter todas as páginas de um arquivo PDF em uma única imagem TIFF.
Tente converter PDF para TIFF online
Aspose.PDF para .NET apresenta a você a aplicação gratuita online “PDF para TIFF”, onde você pode tentar investigar a funcionalidade e qualidade com que funciona.
Converter Páginas de PDF para Uma Imagem TIFF
Aspose.PDF for .NET explica como converter todas as páginas de um arquivo PDF em uma única imagem TIFF:
Passos: Converter PDF para TIFF em C#
- Crie um objeto da classe Document.
- Crie objetos TiffSettings e TiffDevice
- Chame o método TiffDevice.Process() para converter o documento PDF em TIFF.
- Para definir as propriedades do arquivo de saída, use a classe TiffSettings.
O seguinte trecho de código mostra como converter todas as páginas do PDF em uma única imagem TIFF.
public static void ConvertPDFtoTIFF()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Criar objeto Resolution
Resolution resolution = new Resolution(300);
// Criar objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
SkipBlankPages = false
};
// Criar dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Converter uma página específica e salvar a imagem em stream
tiffDevice.Process(pdfDocument, _dataDir + "AllPagesToTIFF_out.tif");
}
Converter Uma Página para Imagem TIFF
Aspose.PDF para .NET permite converter uma página específica de um arquivo PDF para uma imagem TIFF, use uma versão sobrecarregada do método Process(..) que recebe um número de página como argumento para a conversão. O seguinte trecho de código mostra como converter a primeira página de um PDF para o formato TIFF.
Passos: Converter Páginas Únicas ou Específicas de PDF para TIFF em C#
- Crie um objeto da classe Document.
- Crie objetos TiffSettings e TiffDevice
- Chame o método sobrecarregado TiffDevice.Process() com os parâmetros fromPage e toPage para converter páginas do documento PDF para TIFF.
public static void ConvertPDFtoTiffSinglePage()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
// Criar objeto Resolution
Resolution resolution = new Resolution(300);
// Criar objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.None,
Depth = ColorDepth.Default,
Shape = ShapeType.Landscape,
};
// Criar dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Converter uma página específica e salvar a imagem em stream
tiffDevice.Process(pdfDocument, 1, 1, _dataDir + "PageToTIFF_out.tif");
}
Use o algoritmo Bradley durante a conversão
Aspose.PDF para .NET tem suportado o recurso de converter PDF para TIF usando compressão LZW e então com o uso de AForge, Binarização pode ser aplicada. No entanto, um dos clientes solicitou que para algumas imagens, eles precisam obter o Limiar usando Otsu, então eles também gostariam de usar Bradley.
public static void ConvertPDFtoTiffBradleyBinarization()
{
// Abrir documento
Document pdfDocument = new Document(_dataDir + "PageToTIFF.pdf");
string outputImageFile = _dataDir + "resultant_out.tif";
string outputBinImageFile = _dataDir + "37116-bin_out.tif";
// Criar objeto Resolution
Resolution resolution = new Resolution(300);
// Criar objeto TiffSettings
TiffSettings tiffSettings = new TiffSettings
{
Compression = CompressionType.LZW,
Depth = Aspose.Pdf.Devices.ColorDepth.Format1bpp
};
// Criar dispositivo TIFF
TiffDevice tiffDevice = new TiffDevice(resolution, tiffSettings);
// Converter uma página específica e salvar a imagem no stream
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);
}
}
}
Converter PDF usando a classe ImageDevice
ImageDevice
é o ancestral para BmpDevice
, JpegDevice
, GifDevice
, PngDevice
e EmfDevice
.
- A classe BmpDevice permite converter páginas de PDF em imagens BMP.
- A classe EmfDevice permite converter páginas de PDF em imagens EMF.
- A classe JpegDevice permite converter páginas de PDF em imagens JPEG.
- A classe PngDevice permite converter páginas de PDF em imagens PNG.
- A classe GifDevice permite converter páginas de PDF em imagens GIF.
Vamos ver como converter uma página de PDF em uma imagem. Vamos ver como converter uma página de PDF em uma imagem.
A classe BmpDevice
fornece um método chamado Process que permite converter uma página específica do arquivo PDF para o formato de imagem BMP. As outras classes possuem o mesmo método. Então, se precisarmos converter uma página de PDF para uma imagem, simplesmente instanciamos a classe necessária.
Os seguintes passos e trecho de código em C# mostram essa possibilidade
- Converter PDF para BMP em C#
- Converter PDF para EMF em C#
- Converter PDF para JPG em C#
- Converter PDF para PNG em C#
- Converter PDF para GIF em C#
Passos: PDF para Imagem (BMP, EMF, JPG, PNG, GIF) em C#
- Crie uma instância de uma subclasse de ImageDevice i.e.
- BmpDevice (para converter PDF em BMP)
- EmfDevice (para converter PDF em Emf)
- JpegDevice (para converter PDF em JPG)
- PngDevice (para converter PDF em PNG)
- GifDevice (para converter PDF em GIF)
- Chame o método ImageDevice.Process() para realizar a conversão de PDF para imagem.
public static class ExampleConvertPdfToImage
{
private static readonly string _dataDir = @"C:\Samples\";
// BMP, JPEG, GIF, PNG, EMF
public static void ConvertPDFusingImageDevice()
{
// Crie o objeto 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))
{
// Converta uma página específica e salve a imagem no stream
imageDevice.Process(pdfDocument.Pages[pageCount], imageStream);
// Feche o stream
imageStream.Close();
}
}
}
Tente converter PDF para PNG online
Como exemplo de como nossas aplicações gratuitas funcionam, por favor, confira o recurso a seguir.
Aspose.PDF para .NET apresenta a aplicação gratuita online “PDF para PNG”, onde você pode explorar a funcionalidade e a qualidade com que ela funciona.
Converter PDF usando a classe SaveOptions
Esta parte do artigo mostra como converter PDF para SVG usando C# e a classe SaveOptions.
Tente converter PDF para SVG online
Aspose.PDF para .NET apresenta a aplicação gratuita online “PDF para SVG”, onde você pode explorar a funcionalidade e a qualidade com que ela funciona.
Gráficos Vetoriais Escaláveis (SVG) é uma família de especificações de um formato de arquivo baseado em XML para gráficos vetoriais bidimensionais, tanto estáticos quanto dinâmicos (interativos ou animados). A especificação SVG é um padrão aberto que está em desenvolvimento pelo Consórcio World Wide Web (W3C) desde 1999.
As imagens SVG e seus comportamentos são definidos em arquivos de texto XML. Isso significa que eles podem ser pesquisados, indexados, scriptados e, se necessário, comprimidos. Como arquivos XML, as imagens SVG podem ser criadas e editadas com qualquer editor de texto, mas é frequentemente mais conveniente criá-las com programas de desenho como o Inkscape.
Aspose.PDF para .NET suporta a funcionalidade de converter imagens SVG para o formato PDF e também oferece a capacidade de converter arquivos PDF para o formato SVG. Aspose.PDF para .NET suporta a funcionalidade de converter imagens SVG para o formato PDF e também oferece a capacidade de converter arquivos PDF para o formato SVG.
O seguinte trecho de código mostra os passos para converter um arquivo PDF para o formato SVG com .NET.
Passos: Converter PDF para SVG em C#
- Crie um objeto da classe Document.
- Crie um objeto SvgSaveOptions com as configurações necessárias.
- Chame o método Document.Save() e passe o objeto SvgSaveOptions para converter o documento PDF em SVG.
public static void ConvertPDFtoSVG()
{
// Carregar documento PDF
Document document = new Document(System.IO.Path.Combine(_dataDir, "input.pdf"));
// Instanciar um objeto de SvgSaveOptions
SvgSaveOptions saveOptions = new SvgSaveOptions
{
// Não comprimir a imagem SVG para arquivo Zip
CompressOutputToZipArchive = false,
TreatTargetFileNameAsDirectory = true
};
// Salvar a saída em arquivos SVG
document.Save(System.IO.Path.Combine(_dataDir, "PDFToSVG_out.svg"), saveOptions);
}