c# npoi 如何插入图片到word
时间: 2024-09-10 21:22:05 浏览: 118
在C#中,使用NPOI库插入图片到Word文档是一个比较常见的需求。NPOI是一个流行的.NET库,可以用来读取和创建Microsoft Office格式的文件。以下是使用NPOI在Word文档中插入图片的基本步骤:
1. 首先,确保你已经添加了NPOI库的引用到你的项目中。
2. 使用`XWPFDocument`类来加载或者创建一个Word文档(.docx格式)。
3. 使用`XWPFParagraph`类来获取或创建一个段落,这将作为图片的容器。
4. 创建一个`XWPFRun`对象,这个对象代表段落中的可运行文本。
5. 使用`XWPFRun`对象的`AddPicture`方法来添加图片。这个方法有多个重载,可以根据需要选择合适的参数。
下面是一个简单的代码示例,展示如何在Word文档中插入一张图片:
```csharp
// 创建一个新的Word文档
using (var ms = new MemoryStream())
using (var document = new XWPFDocument())
{
// 获取或创建一个段落
var paragraph = document.CreateParagraph();
// 创建一个文本运行,并添加一些文本
var run = paragraph.CreateRun();
run.SetText("这是图片前的文本");
// 在文档中添加图片
var imagePath = @"C:\path\to\your\image.png"; // 图片路径
var image = ImageIO.Read(new FileStream(imagePath, FileMode.Open, FileAccess.Read));
var inline = paragraph.CreateRun().AddPicture(image,
ImageType.JPEG,
imagePath,
Units.ToEMU(100), // 图片宽度
Units.ToEMU(100) // 图片高度
);
// 保存文档
document.Write(ms);
using (var fileStream = new FileStream(@"C:\path\to\save\your\document.docx", FileMode.Create))
{
ms.WriteTo(fileStream);
}
}
```
在这个示例中,`Units.ToEMU`方法用于将像素值转换为EMUs(EMUs是基于1/360000英寸的度量单位,Word文档中使用EMUs来度量图片大小)。这是因为在Word文档中,图片的大小是以EMUs为单位的。
阅读全文