Trabalhar com imagens em PDF C#

Uma imagem vale mais que mil palavras. Portanto, imagens e gráficos desempenham um papel importante em PDF, assim como em outros documentos. Como o PDF se tornou um dos formatos de arquivo mais populares e amplamente usados, este artigo aborda como manipular imagens em arquivos PDF programaticamente. Mais precisamente, você aprenderá como adicionar, extrair, remover e substituir imagens de arquivos PDF em C# .NET.

API C# para adicionar, remover e substituir imagens em PDF - Download gratuito

Aspose.PDF for .NET é uma biblioteca de classes C# que permite criar e manipular documentos PDF de dentro dos aplicativos .NET. Usando a API, você pode executar recursos de automação de PDF básicos e avançados com bastante facilidade. Além disso, você pode manipular imagens em arquivos PDF existentes. A API pode ser baixada como DLL ou instalada via NuGet.

PM> Install-Package Aspose.Pdf

Adicionar imagem em um arquivo PDF em C# .NET

A seguir estão as etapas para adicionar uma imagem a um arquivo PDF usando Aspose.PDF para .NET.

  • Use a classe Document para criar um novo arquivo PDF ou carregar um existente.
  • Obtenha a referência da página desejada no objeto Page.
  • Adicione a imagem à coleção Recursos da página.
  • Use os seguintes operadores para colocar a imagem na página:
    • GSalvar operator to save the current graphical state.
    • Concatenar Matriz operator to specify where the image is to be placed.
    • Fazer operator to draw the image on the page.
    • GRestore operator to save the updated graphical state.
  • Salve o arquivo PDF atualizado usando o método Document.Save(String).

O exemplo de código a seguir mostra como adicionar imagem a um arquivo PDF usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("AddImage.pdf");

// Definir coordenadas
int lowerLeftX = 100;
int lowerLeftY = 100;
int upperRightX = 200;
int upperRightY = 200;

// Obtenha a página onde a imagem precisa ser adicionada
Page page = pdfDocument.Pages[1];

// Carregar imagem no fluxo
FileStream imageStream = new FileStream("aspose-logo.jpg", FileMode.Open);

// Adicionar imagem à coleção de imagens de recursos de página
page.Resources.Images.Add(imageStream);

// Usando o operador GSave: este operador salva o estado gráfico atual
page.Contents.Add(new Aspose.Pdf.Operators.GSave());

// Criar objetos Retângulo e Matriz
Aspose.Pdf.Rectangle rectangle = new Aspose.Pdf.Rectangle(lowerLeftX, lowerLeftY, upperRightX, upperRightY);
Matrix matrix = new Matrix(new double[] { rectangle.URX - rectangle.LLX, 0, 0, rectangle.URY - rectangle.LLY, rectangle.LLX, rectangle.LLY });

// Usando o operador ConcatenateMatrix (concatenate matrix): define como a imagem deve ser colocada
page.Contents.Add(new Aspose.Pdf.Operators.ConcatenateMatrix(matrix));
XImage ximage = page.Resources.Images[page.Resources.Images.Count];

// Usando o operador Do: este operador desenha a imagem
page.Contents.Add(new Aspose.Pdf.Operators.Do(ximage.Name));

// Usando o operador GRestore: este operador restaura o estado gráfico
page.Contents.Add(new Aspose.Pdf.Operators.GRestore());

// Salvar documento atualizado
pdfDocument.Save("AddImage_out.pdf");

Extraia imagens de PDF em C#

Caso você queira extrair todas as imagens de um arquivo PDF, você pode fazê-lo seguindo os passos abaixo.

O exemplo de código a seguir mostra como extrair imagens de PDF usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("ExtractImages.pdf");

// Extraia uma imagem específica
XImage xImage = pdfDocument.Pages[1].Resources.Images[1];

FileStream outputImage = new FileStream("output.jpg", FileMode.Create);

// Salvar imagem de saída
xImage.Save(outputImage, ImageFormat.Jpeg);
outputImage.Close();

Remover imagens de PDF em C#

Depois de ter acesso aos recursos de uma página em PDF, você pode remover as imagens dela. A seguir estão as etapas para remover imagens de um arquivo PDF usando C#.

O exemplo de código a seguir mostra como remover imagens de um PDF usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("DeleteImages.pdf");

// Excluir uma imagem específica
pdfDocument.Pages[1].Resources.Images.Delete(1);

// Salvar arquivo PDF atualizado
pdfDocument.Save("output.pdf");

Substituir imagem em PDF em C#

O Aspose.PDF para .NET também permite substituir uma imagem específica no PDF. Para isso, você pode substituir a imagem na coleção de imagens da página. A seguir estão as etapas para substituir uma imagem em PDF usando C#.

  • Carregue o arquivo PDF usando a classe Document.
  • Substitua a imagem desejada usando o método [Document.Pages1.Resources.Images.Replace(Int32, Stream, Int32, Boolean)]24.
  • Salve o arquivo PDF atualizado usando o método Document.Save(String).

O exemplo de código a seguir mostra como substituir uma imagem em PDF usando C#.

// Para exemplos completos e arquivos de dados, acesse https://github.com/aspose-pdf/Aspose.PDF-for-.NET
// Abrir documento
Document pdfDocument = new Document("input.pdf");

// Substituir uma imagem específica
pdfDocument.Pages[1].Resources.Images.Replace(1, new FileStream("lovely.jpg", FileMode.Open));

// Salvar arquivo PDF atualizado
pdfDocument.Save("output.pdf");

C# .NET PDF API - Obtenha uma licença gratuita

Você pode obter uma licença temporária gratuita para experimentar a API sem limitações de avaliação.

Conclusão

Imagens e objetos gráficos são elementos importantes de documentos PDF. Portanto, neste artigo, abordamos como manipular imagens em um PDF usando a API C# .NET. O tutorial passo a passo e os exemplos de código mostraram como adicionar, extrair, remover e substituir imagens em arquivos PDF em C#. Você pode explorar mais sobre a API C# PDF usando a documentação.

Veja também