如何在C#中添加图片到DOCX

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

IronWord提供ImageContent类,用于将图像(.jpg,.png,.bmp,.tiff,.gif)插入到DOCX文件中,并可自定义属性,如宽度、高度和文字环绕。 使用 IronWord 将图像添加到 Word 文档中,实现文档自动化和报告生成。

快速入门:在C#中添加图像到DOCX

  1. 通过NuGet包管理器安装IronWord
  2. 创建一个新的WordDocument实例
  3. 使用ImageContent类加载您的图像
  4. 使用AddImage()将图像添加到文档中 5.将文档保存为 DOCX
  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronWord

    PM > Install-Package IronWord
  2. 复制并运行这段代码。

    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. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronWord

    arrow pointer

试用 IronWord


如何在 DOCX 中添加图片?

使用文件路径引用图片。 首先,用文件路径字符串实例化ImageContent类。 在整个文件中使用image变量来修改属性,例如宽度和高度。 使用AddImage()函数将图像添加到.docx文件中。 导出文档并保存在本地。

下面的示例在文档中添加了一张图片,但没有任何父节点。 支持的文件格式包括 .jpg、.png、.bmp、.tiff 和 .gif。 这种灵活性使您可以使用任何常见的图像格式。

提示将图像作为子元素插入段落中,以改善文档层次结构。 该段定义了文本换行和其他文本格式属性。 这种方法提供了更多的图像定位控制,并允许图像与周围文本相结合。

: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");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums

' Initializing docx file
Dim doc As New IronWord.WordDocument()

' Instantiating image file
Dim image As 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
Word 文档显示插入的夜间城市天际线图像,主页选项卡功能区显示格式选项

支持哪些图像格式?

支持的文件格式:.jpg、.png、.bmp、.tiff 和 .gif。 每种格式在插入时都要保持其质量。 JPEG 最适用于照片。PNG 支持徽标和图形的透明度。 BMP 可提供未压缩的质量。 TIFF 适合高质量的打印文档。 GIF 允许使用简单的动画(在静态文档中只显示第一帧)。

图像在文档中的位置?

图片默认添加在当前光标位置,不包含任何父节点。 为了精确定位,在段落中插入图片作为子元素。这样可以更好地控制文本流,并将图片与文档结构融为一体。

为什么使用 ImageContent 类?

ImageContent类以结构化方式管理图像属性。 插入前修改尺寸、定位和格式。 这种方法可确保文档生成流程的一致性,并在整个应用程序中应用标准格式规则。 该类封装了所有与图像相关的属性,使代码更易于维护并减少格式错误。

如何通过流添加图片?

使用前一种方法很容易添加本地或静态 URL 图像。 然而,应用程序通常使用数据库、网络服务或动态生成内容中的图像。 使用Stream方法将图像添加到需要身份验证的安全API后面。

下面的示例显示了 HTTP 客户端发送授权令牌以检索经过验证的图像流。 语流在导出前直接集成到文档中。 这种方法消除了临时文件存储,提高了敏感图像数据的安全性。

: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");
Imports IronWord
Imports IronWord.Models
Imports IronWord.Models.Enums
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks

' initializing docx file
Dim doc As New IronWord.WordDocument()

Using client As 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
    Dim authenticatedStream As Stream = Await client.GetStreamAsync("https://api.example.com/secure/image.png")
    doc.AddImage(authenticatedStream)
End Using

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

何时应使用流方法?

在以下情况下使用Stream方法:

  • 图片位于需要身份验证的安全 API 后面
  • 从内存动态处理图像
  • 处理数据库中作为二进制数据存储的图像

在企业应用中,图像存储在文档管理系统、云存储中,或由图像处理服务生成,这种方法非常适用。

流加载有哪些优点?

流加载集成了来自认证端点的图像,无需保存临时文件。 这样可以提高安全性和性能。 福利包括:

  • 减少磁盘 I/O 操作
  • 磁盘上无敏感图像缓存
  • 实时图像处理工作流程
  • 更好地管理大型图像的内存
  • 灵活的图像源选项

如何修改图像属性?

IronWord 提供了自定义图像属性的综合方法。 在将图片添加到文档之前或之后调整这些属性。

设置 说明 范例
宽度 图片的水平尺寸(像素 image.Width = 500;
高度 图片的垂直尺寸(像素 image.Height = 300;
换行文本 图像周围的文字包装行为 image.WrapText = WrapText.Square;
距左距离 从左边缘开始的间距测量,单位为像素 image.DistanceFromLeft = 10;
距右距离 以像素为单位从右边开始测量间距 image.DistanceFromRight = 10;
距上距离 从上边缘开始的间距测量,单位为像素 image.DistanceFromTop = 15;
距下距离 以像素为单位从底边开始测量间距 image.DistanceFromBottom = 15;
职位 空间位置信息(X 和 Y 坐标) image.Position = new ElementPosition(50, 100);
缩放 X 轴和 Y 轴的比例大小系数 image.Scale = new PointF(1.5f, 1.5f);
翻译 用于重新定位的位移坐标 image.Translate = new PointF(20, 30);

如何自定义宽度和高度?

通过改变宽高比实现自定义宽度和高度。 控制图像在文档中的显示方式,无论是保持比例还是适应特定的布局限制。

: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");
Imports IronWord

' initializing docx file
Dim doc As New IronWord.WordDocument()

' instantiating image file
Dim image As 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
显示笔记本电脑图像的 Word 文档,带有 "标签图像文件 F "叠加文本,显示图像属性

高宽比会发生什么变化?

自定义宽度和高度值将覆盖原始宽高比。 拉伸或压缩图片,以适应标题、侧边栏或固定大小容器等布局要求。 极度失真会显得不专业。 为了在调整大小时保持长宽比,请根据目标尺寸计算比例尺寸。

我应该先设置哪些属性?

按以下顺序设置属性: 1.尺寸(宽/高)--图像布局的基础 2.定位(DistanceFrom 属性)--控制间距和边距 3.高级属性(缩放/翻译)--微调

这种方法可确保每个属性都在前一个属性的基础上进行逻辑构建。 某些属性会相互作用--文本包装会影响距离属性的工作方式。

常见问题解答

如何用 C# 在 DOCX 文件中添加图片?

using IronWord,您可以通过创建一个带有图片文件路径的 ImageContent 实例,然后使用 AddImage() 方法将图片添加到 DOCX 文件中。IronWord 支持 JPG、PNG、BMP、TIFF 和 GIF 等常见格式,因此可以轻松地以编程方式在 Word 文档中插入图片。

在 Word 文档中添加图片时支持哪些图片格式?

IronWord 支持所有主流图像格式,包括 .jpg、.png、.bmp、.tiff 和 .gif 文件。每种格式在插入时都能保持其质量--JPEG 适用于照片,PNG 适用于透明图形,BMP 适用于未压缩质量,TIFF 适用于高质量打印文档,GIF 适用于简单动画(只显示第一帧)。

能否控制 DOCX 文件中图片的大小和位置?

是的,IronWord 的 ImageContent 类允许您自定义宽度、高度和文本封装等图像属性。您可以在插入前修改尺寸和定位,从而完全控制图片在 Word 文档中的显示效果。

如何在段落中插入图片以改善文档结构?

IronWord 允许您将图片作为子元素插入段落中,从而提供更好的文档层次结构和对文本包装的控制。与添加无父节点的图像相比,这种方法将图像与周围的文本流整合在一起,并为您提供更精确的定位选项。

以编程方式在 Word 文档中添加图片的最快方法是什么?

using IronWord 的最快方法是创建一个 WordDocument 实例,使用 new ImageContent('photo.jpg') 加载图片,调用 doc.AddImage(image),然后使用 doc.SaveAs('document-with-image.docx') 保存。这个简单的四步流程处理了整个图片插入工作流程。

Ahmad Sohail
全栈开发者

Ahmad 是一名全栈开发人员,拥有扎实的 C#、Python 和 Web 技术基础。他对构建可扩展的软件解决方案深感兴趣,并喜欢探索设计和功能在实际应用中如何结合。

在加入 Iron Software 团队之前,Ahmad 致力于自动化项目和 API 集成,专注于提高性能和开发人员体验。

在业余时间,他喜欢尝试 UI/UX 想法,贡献开源工具,并偶尔从事技术写作和文档工作,以便让复杂主题更易于理解。

准备开始了吗?
Nuget 下载 49,323 | 版本: 2026.7 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronWord
运行示例 观看您的数据变成 Word 文档。