Cómo agregar una imagen a un archivo DOCX en C

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

IronWord proporciona la clase ImageContent para insertar imágenes (.jpg, .png, .bmp, .tiff, .gif) en archivos DOCX con propiedades personalizables como anchura, altura y ajuste del texto. Utilice IronWord para añadir imágenes a documentos de Word para la automatización de documentos y la generación de informes.

como-encabezado:2(Inicio rápido: Añadir imagen a DOCX en C#)

  1. Instalación de IronWord mediante el gestor de paquetes NuGet
  2. Crear una nueva instancia de WordDocument
  3. Cargar la imagen mediante la clase ImageContent
  4. Añade la imagen al documento mediante AddImage()
  5. Guardar el documento como DOCX

Nuget IconEmpieza a crear PDF con NuGet ahora:

  1. Instalar IronWord con el gestor de paquetes NuGet

    PM > Install-Package IronWord

  2. Copie y ejecute este fragmento 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. Despliegue para probar en su entorno real

    Empieza a utilizar IronWord en tu proyecto hoy mismo con una prueba gratuita
    arrow pointer

Prueba IronWord

Comience a usar IronWord en su proyecto hoy con una prueba gratuita.

Primer Paso:
green arrow pointer


¿Cómo añado una imagen a un DOCX?

Haga referencia a una imagen utilizando su ruta de archivo. En primer lugar, instancie la clase ImageContent con la ruta del archivo como cadena. Utilice la variable image en todo el archivo para modificar propiedades como la anchura y la altura. Añade la imagen al archivo .docx mediante la función AddImage(). Exporte y guarde el documento localmente.

El ejemplo siguiente añade una imagen al documento sin ningún nodo padre. Los formatos de archivo admitidos son .jpg, .png, .bmp, .tiff y .gif. Esta flexibilidad permite trabajar con cualquier formato de imagen común.

ConsejosInsertar una imagen como elemento hijo dentro de un párrafo para mejorar la jerarquía del documento. El párrafo define el ajuste de texto y otras propiedades de formato del texto. Este enfoque proporciona un mayor control sobre el posicionamiento de la imagen y permite que las imágenes fluyan con el texto circundante.

: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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
Documento de Word que muestra una imagen nocturna del horizonte de la ciudad insertada con la cinta de la pestaña Inicio mostrando opciones de formato

¿Qué formatos de imagen son compatibles?

Formatos de archivo admitidos: .jpg, .png, .bmp, .tiff y .gif. Cada formato mantiene su calidad cuando se inserta. JPEG funciona mejor para fotografías. PNG admite transparencias para logotipos y gráficos. BMP ofrece una calidad sin comprimir. El formato TIFF es adecuado para documentos impresos de alta calidad. El formato GIF permite animaciones sencillas (en los documentos estáticos sólo se muestra el primer fotograma).

¿Dónde se coloca la imagen en el documento?

Las imágenes se añaden por defecto en la posición actual del cursor, sin ningún nodo padre. Para un posicionamiento preciso, inserte las imágenes como elementos hijos dentro de los párrafos. Así se controla mejor el flujo del texto y se integran las imágenes en la estructura del documento.

¿Por qué usar la clase ImageContent?

La clase ImageContent gestiona las propiedades de las imágenes de forma estructurada. Modifique las dimensiones, el posicionamiento y el formato antes de la inserción. Este enfoque garantiza la coherencia en todo el proceso de generación de documentos y aplica reglas de formato estándar en toda la aplicación. La clase encapsula todas las propiedades relacionadas con las imágenes, lo que facilita el mantenimiento del código y reduce los errores de formato.

¿Cómo añado imágenes a través de Stream?

Las imágenes de URL locales o estáticas son fáciles de añadir con el método anterior. Sin embargo, las aplicaciones suelen trabajar con imágenes de bases de datos, servicios web o contenidos generados dinámicamente. Utilice el método Stream para añadir imágenes detrás de API seguras que requieran autenticación.

El siguiente ejemplo muestra un cliente HTTP que envía tokens de autorización para recuperar un flujo de imágenes autenticado. La secuencia se integra directamente en el documento antes de exportarlo. Este enfoque elimina el almacenamiento temporal de archivos y mejora la seguridad de los datos sensibles de las imágenes.

: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;

// 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 = client.GetStreamAsync("https://api.example.com/secure/image.png");
    doc.AddImage(authenticatedStream);
}

// Export docx
doc.SaveAs("added-image-via-http-stream.docx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

¿Cuándo debo utilizar el método Stream?

Utilice el método Stream cuando:

  • Las imágenes están detrás de API seguras que requieren autenticación
  • Procesamiento dinámico de imágenes desde la memoria
  • Trabajar con imágenes almacenadas como datos binarios en bases de datos

Este método funciona bien en aplicaciones empresariales en las que las imágenes se almacenan en sistemas de gestión de documentos, almacenamiento en la nube o son generadas por servicios de procesamiento de imágenes.

¿Cuáles son las ventajas de Stream Loading?

Stream loading integra imágenes de puntos finales autenticados sin guardar archivos temporales. Esto mejora la seguridad y el rendimiento. Los beneficios incluyen:

  • Reducción de las operaciones de E/S de disco
  • Sin almacenamiento en caché de imágenes sensibles en disco
  • Flujos de trabajo de procesamiento de imágenes en tiempo real
  • Mejor gestión de la memoria para imágenes de gran tamaño
  • Opciones flexibles de fuente de imagen

¿Cómo puedo modificar las propiedades de una imagen?

<Descripción: Diagrama o captura de pantalla que ilustre el concepto de código -->

IronWord ofrece métodos completos para personalizar las propiedades de las imágenes. Ajuste estas propiedades antes o después de añadir la imagen al documento.

ConfiguracionesDescripciónEjemplo
AnchuraDimensión horizontal de la imagen en píxelesimage.Anchura = 500;
AlturaDimensión vertical de la imagen en píxelesimage.Altura = 300;
WrapTextComportamiento de ajuste de texto alrededor de la imagenimage.WrapText = WrapText.Square;
DistanciaDeLaIzquierdaMedida de espaciado desde el borde izquierdo en píxelesimage.DistanciaDeLaIzquierda = 10;
DistanciaDeLaDerechaMedida de espaciado desde el borde derecho en píxelesimage.DistanciaDeLaDerecha = 10;
DistanciaDesdeTopMedida de espaciado desde el borde superior en píxelesimage.DistanciaDesdeTop = 15;
DistanciaDelFondoMedida de espaciado desde el borde inferior en píxelesimage.DistanciaDelFondo = 15;
PosiciónInformación de ubicación espacial (coordenadas X e Y)image.Posición = new ElementPosición(50, 100);
EscalaFactores de dimensionamiento proporcional para los ejes X e Yimage.Escala = new PointF(1.5f, 1.5f);
TraducirCoordenadas de desplazamiento para reposicionamientoimage.Traducir = new PointF(20, 30);

¿Cómo puedo personalizar la anchura y la altura?

Implementar anchura y altura personalizadas alterando la relación de aspecto. Controlar cómo aparecen las imágenes en los documentos, ya sea manteniendo las proporciones o ajustándose a restricciones de maquetación específicas.

:path=/static-assets/word/content-code-examples/how-to/add-image-custom-size.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.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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel
Documento de Word que muestra la imagen de un ordenador portátil con texto superpuesto 'Tagged Image File F' que demuestra la visualización de las propiedades de la imagen

¿Qué ocurre con la relación de aspecto?

Los valores personalizados de anchura y altura anulan la relación de aspecto original. Estirar o comprimir imágenes para adaptarlas a requisitos de diseño como cabeceras, barras laterales o contenedores de tamaño fijo. Una distorsión extrema puede resultar poco profesional. Para mantener la relación de aspecto al cambiar el tamaño, calcule las dimensiones proporcionales en función del tamaño de destino.

¿Qué propiedades debo configurar primero?

Establezca las propiedades en este orden:

  1. Dimensiones (anchura/altura) - base del diseño de la imagen
  2. Posicionamiento (propiedades DistanceFrom) - control del espaciado y los márgenes
  3. Propiedades avanzadas (escalar/traducir) - ajuste fino

Este enfoque garantiza que cada característica se base lógicamente en las anteriores. Algunas propiedades interactúan: el ajuste del texto afecta al funcionamiento de las propiedades de distancia.

Preguntas Frecuentes

¿Cómo añado una imagen a un archivo DOCX en C#?

Con IronWord, puede añadir imágenes a archivos DOCX creando una instancia de ImageContent con la ruta de su archivo de imagen y utilizando el método AddImage(). IronWord admite formatos comunes como JPG, PNG, BMP, TIFF y GIF, lo que facilita la inserción programática de imágenes en documentos Word.

¿Qué formatos de imagen se admiten al añadir imágenes a documentos de Word?

IronWord es compatible con los principales formatos de imagen, incluidos los archivos .jpg, .png, .bmp, .tiff y .gif. Cada formato mantiene su calidad cuando se inserta: JPEG para fotografías, PNG para gráficos con transparencia, BMP para calidad sin comprimir, TIFF para documentos de impresión de alta calidad y GIF para animaciones sencillas (mostrando sólo el primer fotograma).

¿Puedo controlar el tamaño y la posición de las imágenes en los archivos DOCX?

Sí, la clase ImageContent de IronWord permite personalizar las propiedades de las imágenes, como la anchura, la altura y el ajuste del texto. Puede modificar las dimensiones y el posicionamiento antes de la inserción, lo que le da un control total sobre cómo aparecen las imágenes en sus documentos de Word.

¿Cómo inserto una imagen dentro de un párrafo para estructurar mejor el documento?

IronWord permite insertar imágenes como elementos secundarios dentro de los párrafos, lo que mejora la jerarquía del documento y el control sobre el ajuste del texto. Este enfoque integra las imágenes con el flujo de texto circundante y le ofrece opciones de posicionamiento más precisas en comparación con la adición de imágenes sin un nodo padre.

¿Cuál es la forma más rápida de añadir una imagen a un documento de Word mediante programación?

El método más rápido con IronWord es crear una instancia de WordDocument, cargar su imagen utilizando new ImageContent('photo.jpg'), llamar a doc.AddImage(image), y guardar con doc.SaveAs('document-with-image.docx'). Este sencillo proceso de cuatro pasos gestiona todo el flujo de trabajo de inserción de imágenes.

Ahmad Sohail
Desarrollador Full Stack

Ahmad es un desarrollador full-stack con una sólida base en C#, Python y tecnologías web. Tiene un profundo interés en construir soluciones de software escalables y disfruta explorando cómo el diseño y la funcionalidad se encuentran en aplicaciones del mundo real.

Antes ...

Leer más
¿Listo para empezar?
Nuget Descargas 28,054 | Versión: 2025.12 recién lanzado