How to Add Image to DOCX in C#

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord fornece a classe ImageContent para inserir imagens (.jpg, .png, .bmp, .tiff, .gif) em arquivos DOCX com propriedades personalizáveis como largura, altura e quebra de texto. Utilize o IronWord para adicionar imagens a documentos do Word para automatizar a criação de documentos e relatórios.

Início rápido: Adicionar imagem a um arquivo DOCX em C#

  1. Instale o IronWord através do Gerenciador de Pacotes NuGet
  2. Crie uma nova instância de WordDocument
  3. Carregue sua imagem usando a classe ImageContent
  4. Adicione a imagem ao documento usando AddImage()
  5. Salve o documento como DOCX.
  1. Instale IronWord com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronWord
  2. Copie e execute este trecho de código.

    using IronWord;
    using IronWord.Models;
    
    // Create new document
    WordDocument doc = new WordDocument();
    
    // Add image
    ImageContent image = new ImageContent("photo.jpg");
    doc.AddImage(image);
    
    // Save document
    doc.SaveAs("document-with-image.docx");
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronWord em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Experimente IronWord


Como adiciono uma imagem a um arquivo DOCX?

Faça referência a uma imagem usando o caminho do arquivo. Primeiro, instancie a classe ImageContent com o caminho do arquivo como uma string. Use a variável image ao longo do arquivo para modificar propriedades como largura e altura. Adicione a imagem ao arquivo .docx usando a função AddImage(). Exporte e salve o documento localmente.

O exemplo abaixo adiciona uma imagem ao documento sem nenhum nó pai. Os formatos de arquivo suportados incluem .jpg, .png, .bmp, .tiff e .gif. Essa flexibilidade permite que você trabalhe com qualquer formato de imagem comum.

PontasInsira uma imagem como elemento filho dentro de um parágrafo para melhor hierarquia do documento. O parágrafo define a quebra de texto e outras propriedades de formatação de texto. Essa abordagem proporciona maior controle sobre o posicionamento da imagem e permite que as imagens acompanhem o texto ao redor.

:path=/static-assets/word/content-code-examples/how-to/add-image-insert-image.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

// instantiating image file
IronWord.Models.ImageContent image = new IronWord.Models.ImageContent("sample-image.jpg");

// modifying image properties
image.Width = 200;
image.Height = 200;

// AddImage function saving the image
doc.AddImage(image);

// Save and export the file
doc.SaveAs("inserted-image.docx");
$vbLabelText   $csharpLabel
Documento do Word mostrando uma imagem inserida da paisagem urbana noturna, com a guia Página Inicial exibindo as opções de formatação.

Quais formatos de imagem são suportados?

Formatos de arquivo suportados: .jpg, .png, .bmp, .tiff e .gif. Cada formato mantém sua qualidade quando inserido. O formato JPEG é o mais indicado para fotografias. O PNG suporta transparência para logotipos e gráficos. O formato BMP oferece qualidade sem compressão. O formato TIFF é adequado para documentos de impressão de alta qualidade. O formato GIF permite animações simples (apenas o primeiro quadro é exibido em documentos estáticos).

Onde a imagem será inserida no documento?

Por padrão, as imagens são adicionadas na posição atual do cursor, sem nenhum nó pai. Para um posicionamento preciso, insira imagens como elementos filhos dentro dos parágrafos. Isso proporciona um melhor controle sobre o fluxo do texto e integra as imagens à estrutura do seu documento.

Por que usar a classe ImageContent?

A classe ImageContent gerencia as propriedades da imagem de forma estruturada. Modifique as dimensões, o posicionamento e a formatação antes da inserção. Essa abordagem garante consistência em todo o processo de geração de documentos e aplica regras de formatação padrão em toda a sua aplicação. A classe encapsula todas as propriedades relacionadas à imagem, tornando o código mais fácil de manter e reduzindo erros de formatação.

Como adiciono imagens via Stream?

É fácil adicionar imagens com URLs locais ou estáticas usando o método anterior. No entanto, as aplicações geralmente funcionam com imagens provenientes de bases de dados, serviços web ou conteúdo gerado dinamicamente. Use o método Stream para adicionar imagens atrás de APIs seguras que exigem autenticação.

O exemplo abaixo mostra um cliente HTTP enviando tokens de autorização para recuperar um fluxo de imagens autenticado. O fluxo de dados integra-se diretamente ao documento antes da exportação. Essa abordagem elimina o armazenamento temporário de arquivos e melhora a segurança de dados de imagem sensíveis.

:path=/static-assets/word/content-code-examples/how-to/add-image-insert-image-via-http-stream.cs
using IronWord;
using IronWord.Models;
using IronWord.Models.Enums;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

using (HttpClient client = new HttpClient())
{
    // Add authentication headers
    client.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY_HERE");
    client.DefaultRequestHeaders.Add("User-Agent", "MyApp/1.0");

    // Get image from authenticated endpoint
    Stream authenticatedStream = await client.GetStreamAsync("https://api.example.com/secure/image.png");
    doc.AddImage(authenticatedStream);
}

// Export docx
doc.SaveAs("added-image-via-http-stream.docx");
$vbLabelText   $csharpLabel

Quando devo usar o método Stream?

Use o método Stream quando:

  • As imagens estão protegidas por APIs seguras que exigem autenticação.
  • Processamento dinâmico de imagens a partir da memória
  • Trabalhar com imagens armazenadas como dados binários em bancos de dados

Este método funciona bem em aplicações empresariais onde as imagens são armazenadas em sistemas de gestão documental, armazenamento na nuvem ou geradas por serviços de processamento de imagens.

Quais são os benefícios do carregamento de fluxos de dados?

O carregamento de fluxos integra imagens de endpoints autenticados sem salvar arquivos temporários. Isso melhora a segurança e o desempenho. Os benefícios incluem:

  • Redução das operações de E/S de disco
  • Não há armazenamento em cache de imagens sensíveis no disco.
  • Fluxos de trabalho de processamento de imagem em tempo real
  • Melhor gerenciamento de memória para imagens grandes
  • Opções flexíveis de origem da imagem

Como posso modificar as propriedades de uma imagem?

O IronWord oferece métodos abrangentes para personalizar as propriedades da imagem. Ajuste essas propriedades antes ou depois de adicionar a imagem ao documento.

Configurações Descrição Exemplo
Largura Dimensão horizontal da imagem em pixels `image.Largura = 500;`
Altura Dimensão vertical da imagem em pixels `image.Altura = 300;`
Quebra de texto Comportamento de ajuste de texto ao redor da imagem `image.Quebra de texto = Quebra de texto.Square;`
Distância da esquerda Medida de espaçamento a partir da borda esquerda em pixels `image.Distância da esquerda = 10;`
Distância da direita Medida de espaçamento a partir da borda direita em pixels `image.Distância da direita = 10;`
Distância do topo Medida de espaçamento a partir da borda superior em pixels `image.Distância do topo = 15;`
Distância da base Medida de espaçamento a partir da borda inferior em pixels `image.Distância da base = 15;`
Posição Informações de localização espacial (coordenadas X e Y) `image.Posição = new ElementPosição(50, 100);`
Escala Fatores de dimensionamento proporcional para os eixos X e Y `image.Escala = new PointF(1.5f, 1.5f);`
Traduzir Coordenadas de deslocamento para reposicionamento `image.Traduzir = new PointF(20, 30);`

Como faço para personalizar a largura e a altura?

Implemente largura e altura personalizadas alterando a proporção da tela. Controle a forma como as imagens aparecem nos documentos, seja mantendo as proporções ou ajustando-as a restrições de layout específicas.

:path=/static-assets/word/content-code-examples/how-to/add-image-custom-size.cs
using IronWord;

// initializing docx file
WordDocument doc = new IronWord.WordDocument();

// instantiating image file
IronWord.Models.ImageContent image = new IronWord.Models.ImageContent("sample-image.tiff");

// modifying the aspect ratio by introducing custom width
image.Width = 800;
image.Height = 200;

// AddImage function saving the image
doc.AddImage(image);

// Save and export the file
doc.SaveAs("custom-size-image.docx");
$vbLabelText   $csharpLabel
Documento do Word exibindo a imagem de um laptop com a sobreposição do texto

O que acontece com a proporção da tela?

Valores personalizados de largura e altura substituem a proporção original. Estique ou comprima imagens para adequá-las a requisitos de layout, como cabeçalhos, barras laterais ou contêineres de tamanho fixo. Distorções extremas podem parecer pouco profissionais. Para manter a proporção ao redimensionar, calcule as dimensões proporcionais com base no tamanho desejado.

Quais propriedades devo configurar primeiro?

Defina as propriedades nesta ordem:

  1. Dimensões (largura/altura) - base do layout da imagem
  2. Posicionamento (Propriedades DistanceFrom) - controle de espaçamento e margens
  3. Propriedades avançadas (escala/translação) - ajuste fino

Essa abordagem garante que cada propriedade seja construída logicamente sobre as anteriores. Algumas propriedades interagem — a quebra de texto afeta o funcionamento das propriedades de distância.

Perguntas frequentes

Como adiciono uma imagem a um arquivo DOCX em C#?

Com o IronWord, você pode adicionar imagens a arquivos DOCX criando uma instância de ImageContent com o caminho do arquivo de imagem e, em seguida, usando o método AddImage(). O IronWord suporta formatos comuns como JPG, PNG, BMP, TIFF e GIF, facilitando a inserção programática de imagens em documentos do Word.

Quais formatos de imagem são suportados ao adicionar imagens a documentos do Word?

O IronWord suporta todos os principais formatos de imagem, incluindo arquivos .jpg, .png, .bmp, .tiff e .gif. Cada formato mantém sua qualidade ao ser inserido: JPEG para fotografias, PNG para gráficos com transparência, BMP para qualidade sem compressão, TIFF para documentos de impressão de alta qualidade e GIF para animações simples (exibindo apenas o primeiro quadro).

Posso controlar o tamanho e o posicionamento das imagens em arquivos DOCX?

Sim, a classe ImageContent do IronWord permite personalizar propriedades da imagem, como largura, altura e quebra de texto. Você pode modificar as dimensões e o posicionamento antes da inserção, tendo controle total sobre a aparência das imagens em seus documentos do Word.

Como faço para inserir uma imagem dentro de um parágrafo para melhorar a estrutura do documento?

O IronWord permite inserir imagens como elementos filhos dentro de parágrafos, proporcionando melhor hierarquia do documento e controle sobre a quebra de texto. Essa abordagem integra as imagens ao fluxo de texto circundante e oferece opções de posicionamento mais precisas em comparação com a adição de imagens sem um nó pai.

Qual é a maneira mais rápida de adicionar uma imagem a um documento do Word programaticamente?

O método mais rápido com o IronWord é criar uma instância de WordDocument, carregar sua imagem usando new ImageContent('photo.jpg'), chamar doc.AddImage(image) e salvar com doc.SaveAs('document-with-image.docx'). Esse processo simples de quatro etapas lida com todo o fluxo de trabalho de inserção de imagem.

Ahmad Sohail
Desenvolvedor Full Stack

Ahmad é um desenvolvedor full-stack com uma sólida base em C#, Python e tecnologias web. Ele tem um grande interesse em construir soluções de software escaláveis e gosta de explorar como design e funcionalidade se encontram em aplicações do mundo real.

Antes de se ...

Leia mais
Pronto para começar?
Nuget Downloads 35,581 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronWord
executar um exemplo Veja seus dados se transformarem em um documento do Word.