如何在 C# 中向 DOCX 添加图像

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

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

as-heading:2(快速入门:在 C# 中为 DOCX 添加图像)

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

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 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

今天在您的项目中使用 IronWord,免费试用。

第一步:
green arrow pointer


如何在 DOCX 中添加图片? 使用文件路径引用图片。 首先,以字符串文件路径实例化 `ImageContent` 类。 在整个文件中使用 `image` 变量来修改宽度和高度等属性。 使用 `AddImage()` 函数将图像添加到 .docx 文件中。 导出文档并保存在本地。 下面的示例在文档中添加了一张图片,但没有任何父节点。 支持的文件格式包括 .jpg、.png、.bmp、.tiff 和 .gif。 这种灵活性使您可以使用任何常见的图像格式。
提示Insert an image as a child element within a paragraph for better document hierarchy. 该段定义了文本换行和其他文本格式属性。 这种方法可以更好地控制图片的位置,并使图片与周围的文字保持流畅
```csharp :path=/static-assets/word/content-code-examples/how-to/add-image-insert-image.cs ```
Word文档,显示插入的夜间城市天际线图像,主页选项卡功能区显示格式选项

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

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

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

如何通过流添加图片? 使用前一种方法很容易添加本地或静态 URL 图像。 然而,应用程序通常使用数据库、网络服务或动态生成内容中的图像。 使用 `Stream` 方法在需要身份验证的安全 API 后面添加图像。 下面的示例显示了 HTTP 客户端发送授权令牌以检索经过验证的图像流。 语流在导出前直接集成到文档中。 这种方法消除了临时文件存储,提高了敏感图像数据的安全性。 ```csharp :path=/static-assets/word/content-code-examples/how-to/add-image-insert-image-via-http-stream.cs ```

何时应使用流方法? 在以下情况下使用 `Stream` 方法: - 图片位于需要身份验证的安全 API 后面 - 从内存动态处理图像 - 处理数据库中作为二进制数据存储的图像 在企业应用中,图像存储在文档管理系统、云存储中,或由图像处理服务生成,这种方法非常适用。

流加载有哪些优点? 流加载集成了来自认证端点的图像,无需保存临时文件。 这样可以提高安全性和性能。 福利包括: - 减少磁盘 I/O 操作 - 磁盘上无敏感图像缓存 - 实时图像处理工作流程 - 更好地管理大型图像的内存 - 灵活的图像源选项

如何修改图像属性? <!--说明:说明代码概念的图表或截图 --> IronWord 提供了自定义图像属性的综合方法。 在将图片添加到文档之前或之后调整这些属性。
设置 说明 范例
Width 图片的水平尺寸(像素 <代码>image.Width = 500;
Height 图片的垂直尺寸(像素 <代码>image.Height = 300;
包文本 图像周围的文字包装行为 <代码>image.包文本 = 包文本.Square;
左侧距离 从左边缘开始的间距测量,单位为像素 <代码>image.左侧距离 = 10;
距离 以像素为单位从右边开始测量间距 <代码>image.距离 = 10;
距离顶部 从上边缘开始的间距测量,单位为像素 <代码>image.距离顶部 = 15;
距离底部 以像素为单位从底边开始测量间距 <代码>image.距离底部 = 15;
职位 空间位置信息(X 和 Y 坐标) <代码>image.职位 = new Element职位(50, 100);
规模 X 轴和 Y 轴的比例大小系数 <代码>image.规模 = new PointF(1.5f, 1.5f);
翻译 用于重新定位的位移坐标 <代码>image.翻译 = new PointF(20, 30);

如何自定义宽度和高度? 通过改变宽高比实现自定义宽度和高度。 控制图像在文档中的显示方式,无论是保持比例还是适应特定的布局限制。 ```csharp :path=/static-assets/word/content-code-examples/how-to/add-image-custom-size.cs ```
显示笔记本图像的 Word 文档,带有'标记图像文件 F'覆盖文本,演示图像属性显示

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

我应该先设置哪些属性? 按以下顺序设置属性: 1.尺寸(宽/高)--图像布局的基础 2.定位(DistanceFrom 属性)--控制间距和边距 3.高级属性(缩放/翻译)--微调 这种方法可确保每个属性都在前一个属性的基础上进行逻辑构建。 某些属性会相互作用--文本包装会影响距离属性的工作方式。

常见问题解答

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

使用 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 文档中添加图片的最快方法是什么?

使用 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 下载 28,054 | 版本: 2025.12 刚刚发布