插入图片时候,出现系统中,ArgumentException:“无法在此位置插入此类型的节点。
时间: 2024-04-14 17:30:26 浏览: 146
当在 C# 中使用 Aspose.Words 库插入图片时,可能会遇到 `ArgumentException: 无法在此位置插入此类型的节点` 异常。这个异常通常是由于尝试将不兼容的节点插入到不正确的位置导致的。
要解决这个问题,你需要确保在插入图片之前,将图片包装在一个 `Shape` 对象中,并将 `Shape` 对象添加到文档的合适位置。以下是一个示例代码,展示了如何在文档的指定位置插入一张图片:
```csharp
using Aspose.Words;
class Program
{
static void Main(string[] args)
{
// 加载 Word 文档
Document doc = new Document("input.docx");
// 创建 Shape 对象并设置图片路径
Shape shape = new Shape(doc, ShapeType.Image);
shape.ImageData.SetImage("image.jpg");
// 设置 Shape 的位置和大小
shape.Left = 100;
shape.Top = 100;
shape.Width = 200;
shape.Height = 200;
// 获取要插入图片的段落(假设为第一段)
Paragraph para = doc.FirstSection.Body.FirstParagraph;
// 在段落中插入 Shape 对象
para.AppendChild(shape);
// 保存文档
doc.Save("output.docx");
}
}
```
在上述代码中,我们首先加载了要编辑的 Word 文档(假设为 "input.docx")。然后,创建一个 `Shape` 对象,并设置其类型为图像类型(`ShapeType.Image`)。接着,通过 `ImageData.SetImage()` 方法设置图像的路径。然后,设置 `Shape` 对象的位置和大小。获取要插入图片的段落(这里假设你的文档的第一段是合适的位置),并将 `Shape` 对象添加到该段落的末尾。最后,保存文档(保存为 "output.docx")。
请注意,上述代码中的图片路径、Shape 对象的位置和大小等都是示例中的值,你需要根据你的实际情况调整这些值。确保将图片包装在 `Shape` 对象中,并将 `Shape` 对象插入到文档的合适位置,避免触发 `ArgumentException` 异常。
阅读全文