A conversão de imagens para PDF é um cenário importante e útil para aplicativos de processamento de arquivos. Neste artigo, aprenderemos a converter imagens JPG, PNG, TIFF, EMF, WMF e BMP para conversão de PDF usando C# ou VB.NET. A seguir estão as etapas de instalação e alguns dos possíveis casos de uso para converter imagens:

C# Image to PDF Converter API - Instalação

Realizaremos a conversão desses formatos de imagem para PDF usando a API Aspose.PDF for .NET. Você pode baixá-lo da seção Releases ou através da NuGet Gallery com o seguinte comando:

Install-Package Aspose.Pdf -Version 20.9.0

Portanto, a API foi instalada com sucesso até agora. Vamos seguir em frente para explorar diferentes casos de uso:

Converter JPG para PDF com C#

Você pode converter facilmente uma imagem JPG em PDF seguindo as etapas:

  1. Inicialize o objeto da classe Document
  2. Adicionar uma nova página ao documento PDF
  3. Carregar imagem JPG e adicionar ao parágrafo
  4. Salvar PDF de saída

O trecho de código abaixo mostra como converter imagem JPG em PDF usando C#:

// Carregar arquivo JPG de entrada
String path = dataDir + "Aspose.jpg";

// Inicializar novo documento PDF
Document doc = new Document();

// Adicionar página vazia em documento vazio
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Adicionar imagem em uma página
page.Paragraphs.Add(image);

// Salvar arquivo PDF de saída
doc.Save(dataDir + "ImagetoPDF.pdf");

Abaixo está a captura de tela da conversão de JPG para PDF:

Imagem para PDF

No entanto, nesta captura de tela, você pode observar que a imagem é convertida em uma página PDF, mas as dimensões e margens padrão da página são aplicadas no documento PDF de saída. A API Aspose.PDF for .NET permite que você controle as dimensões da página e a margem que o ajudam a criar PDF exatamente do mesmo tamanho que as dimensões da imagem. Vamos continuar a explorar esse recurso:

Converter imagem em PDF com a mesma altura e largura da página

Continuando este exemplo do caso de uso acima, você pode notar um tamanho de página maior na captura de tela acima. Vamos aprender como converter uma imagem para PDF com a mesma altura e largura da página. Obteremos as dimensões da imagem e, de acordo, definiremos as dimensões da página do documento PDF com as etapas abaixo:

  1. Carregar arquivo de imagem de entrada
  2. Obter a altura e a largura da imagem
  3. Definir altura, largura e margens de uma página
  4. Salve o arquivo PDF de saída

O trecho de código a seguir mostra como converter uma imagem em PDF com a mesma altura e largura de página usando C#:

// Carregar arquivo de imagem JPG de entrada
String path = dataDir + "Aspose.jpg";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);

// Ler Altura da imagem de entrada
int h = srcImage.Height;

// Ler Altura da imagem de entrada
int w = srcImage.Width;

// Inicialize um novo documento PDF
Document doc = new Document();

// Adicionar uma página vazia
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Definir dimensões e margens da página
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);

// Salvar arquivo PDF de saída
doc.Save(dataDir + "ImagetoPDF_HeightWidth.pdf");

Assim, você pode notar a diferença das dimensões da página que foram criadas com o snippet de código atualizado:

Finalmente, você pode notar que o tamanho da página é exatamente semelhante de acordo com as dimensões da imagem de entrada, e não há mais margens de página padrão sendo definidas agora.

Converter PNG para PDF usando C#

PNG formato de imagem é popular por causa de seus recursos em comparação com imagens JPG. Por exemplo, imagens PNG suportam transparência. Em primeiro lugar, vamos converter PNG para PDF com as etapas abaixo:

  1. Carregar imagem PNG de entrada
  2. Ler valores de altura e largura
  3. Criar novo documento e adicionar página
  4. Definir dimensões da página
  5. Salvar arquivo de saída

Além disso, o trecho de código abaixo mostra como converter PNG para PDF com C# em seus aplicativos .NET:

// Carregar arquivo PNG de entrada
String path = dataDir + "Aspose.png";
System.Drawing.Image srcImage = System.Drawing.Image.FromFile(path);
int h = srcImage.Height;
int w = srcImage.Width;

// Inicializar novo documento
Document doc = new Document();
Page page = doc.Pages.Add();
Aspose.Pdf.Image image = new Aspose.Pdf.Image();
image.File = (path);

// Definir dimensões da página
page.PageInfo.Height = (h);
page.PageInfo.Width = (w);
page.PageInfo.Margin.Bottom = (0);
page.PageInfo.Margin.Top = (0);
page.PageInfo.Margin.Right = (0);
page.PageInfo.Margin.Left = (0);
page.Paragraphs.Add(image);

// Salvar PDF de saída
doc.Save(dataDir + "ImagetoPDF.pdf");

Converter TIFF para PDF usando C#

Uma imagem TIFF é diferente de JPEG, PNG ou outros formatos convencionais, pois uma imagem TIFF pode conter vários quadros com imagens diferentes. O formato de arquivo Aspose.PDF também é suportado, seja uma imagem TIFF de quadro único ou de vários quadros. Assim, você pode converter a imagem TIFF em PDF em seus aplicativos .NET. Portanto, consideraremos um exemplo de conversão de imagem TIFF de várias páginas em documento PDF de várias páginas com as etapas abaixo:

  1. Instanciar uma instância da classe Document
  2. Carregar imagem TIFF de entrada
  3. Obter FrameDimension dos frames
  4. Adicionar nova página para cada quadro
  5. Por fim, salve imagens em páginas PDF

Além disso, o trecho de código a seguir mostra como converter uma imagem TIFF de várias páginas ou vários quadros em PDF com C#:

// Inicializar novo documento
Document pdf = new Document();

//Carregar imagem TIFF no fluxo
MemoryStream ms = new MemoryStream();
new FileStream(dataDir + @"Aspose.tiff", FileMode.Open).CopyTo(ms);
Bitmap myimage = new Bitmap(ms);
// Converta TIFF de várias páginas ou vários quadros para PDF
FrameDimension dimension = new FrameDimension(myimage.FrameDimensionsList[0]);
int frameCount = myimage.GetFrameCount(dimension);

// Iterar em cada quadro
for (int frameIdx = 0; frameIdx <= frameCount - 1; frameIdx++)
{
    Page sec = pdf.Pages.Add();

    myimage.SelectActiveFrame(dimension, frameIdx);

    MemoryStream currentImage = new MemoryStream();
    myimage.Save(currentImage, ImageFormat.Tiff);

    Aspose.Pdf.Image imageht = new Aspose.Pdf.Image();
    imageht.ImageStream = currentImage;
    sec.Paragraphs.Add(imageht);
}

// Salvar arquivo PDF de saída
pdf.Save(dataDir + "TifftoPDF.pdf");

Converter imagem EMF em PDF usando C#

As imagens EMF, também conhecidas como Enhanced Metafile Format, são, na verdade, imagens independentes do dispositivo. Além disso, você pode converter EMF para imagem PDF usando as etapas abaixo:

  1. Em primeiro lugar, inicialize o objeto de classe Document
  2. Carregar arquivo de imagem EMF
  3. Adicione a imagem EMF carregada a uma página
  4. Salvar documento PDF

Além disso, o trecho de código a seguir mostra como converter um EMF em PDF com C# em seu trecho de código .NET:

// Inicializar novo documento PDF
var doc = new Document();

// Especificar o caminho do arquivo de imagem EMF de entrada
var imageFile = dataDir + "drawing.emf";
var page = doc.Pages.Add(); 
string file = imageFile;
FileStream filestream = new FileStream(file, FileMode.Open, FileAccess.Read);
BinaryReader reader = new BinaryReader(filestream);
long numBytes = new FileInfo(file).Length;
byte[] bytearray = reader.ReadBytes((int)numBytes);
Stream stream = new MemoryStream(bytearray);
var b = new Bitmap(stream);

// Especificar propriedades de dimensão da página
page.PageInfo.Margin.Bottom = 0;
page.PageInfo.Margin.Top = 0;
page.PageInfo.Margin.Left = 0;
page.PageInfo.Margin.Right = 0;
page.PageInfo.Width = b.Width;
page.PageInfo.Height = b.Height;
var image = new Aspose.Pdf.Image();
image.File = imageFile;
page.Paragraphs.Add(image);

//Salvar documento PDF de saída
doc.Save(dataDir + "EMFtoPDF.pdf");

Converter BMP para PDF com C#

Imagens BMP são imagens Bitmap que você pode converter em PDF com Aspose.PDF para .NET API. Portanto, você pode seguir as seguintes etapas para converter imagens BMP:

  1. Inicializar um novo documento
  2. Carregar imagem BMP de entrada
  3. Por fim, salve o arquivo PDF de saída

Portanto, o trecho de código a seguir segue estas etapas e mostra como converter BMP em PDF usando C#:

Initialize empty PDF document
using (Document pdfDocument = new Document())
{
    pdfDocument.Pages.Add();
    Aspose.Pdf.Image image = new Aspose.Pdf.Image();

    // Carregar arquivo de imagem BMP de amostra
    image.File = dataDir + @"Sample.bmp";
    pdfDocument.Pages[1].Paragraphs.Add(image);

    // Salvar documento PDF de saída
    pdfDocument.Save(dataDir + @"BMPtoPDF.pdf");
}

Conclusão

Afinal, exploramos a conversão de imagens para PDF de diferentes aspectos usando C#. Diferentes conversões, incluindo JPG, PNG, TIFF, EMF e BMP para conversão de PDF foram discutidas em detalhes. Além disso, aprendemos como melhorar a renderização da imagem para PDF enquanto definimos o tamanho e as margens da página. Além disso, se você ainda tiver dúvidas ou perguntas, entre em contato conosco em Fórum de suporte gratuito.

Veja também