我有一个MS Word文件,其中包含一些句子,我需要在行之间插入一些图像。在AddPicture
中使用Microsoft.Office.Interop.Word
方法时,我可以插入图像,但不能插入特定位置。
除AddPicture
以外,我没有找到其他方法将图像插入现有Word文件中。 我正在尝试在苹果之后的特定行之后插入图片,而苹果图片应该是。
在这里,我正在创建一个段落并尝试添加图像。这是我的初始文件:
其中包含包含苹果,芒果和葡萄词的段落。
这是我的代码的输出(如下)
图像应插入苹果线之后 必需的输出:
using System;
using System.Collections.Generic;
using System.Reflection;
using System.Reflection.Metadata;
using Word =Microsoft.Office.Interop.Word;
using System.IO;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
Word.Application ap = new Word.Application();
Word.Document document = ap.Documents.Open(@"C:\Users\ermcnnj\Desktop\Doc1.docx");
//document.InlineShapes.AddPicture(@"C:\Users\ermcnnj\Desktop\apple.png");
String read = string.Empty;
List<string> data = new List<string>();
for (int i = 0; i < document.Paragraphs.Count; i++)
{
string temp = document.Paragraphs[i + 1].Range.Text.Trim();
if (temp != string.Empty && temp.Contains("Apple"))
{
var pPicture = document.Paragraphs.Add();
pPicture.Format.SpaceAfter = 10f;
document.InlineShapes.AddPicture(@"C:\Users\ermcnnj\Desktop\apple.png", Range: pPicture.Range);
}
}
}
}
}
上面是我正在使用的代码。
答案 0 :(得分:0)
以下代码段说明了如何完成此操作。注意。为了清楚起见,简化了仅设置要查找的文本的过程-可能需要指定许多其他属性;请阅读Word语言参考中的Find
功能。
如果找到了搜索词,则与Range
关联的Find
会更改为找到的词,并且可以采取进一步的措施。在这种情况下,在找到的术语之后会插入一个新的(空)段落。 (问题指定该术语是一个段落的全部内容,因此,本示例将假定该内容!)然后将Range
移至该新段落并插入InlineShape
。
请注意如何将图形分配给InlineShape
对象。如果需要对该对象执行任何操作,请使用对象变量ils
。
Word.Application ap = new Word.Application();
Word.Document document = ap.Documents.Open(@"C:\Users\ermcnnj\Desktop\Doc1.docx");
Word.Range rng = document.Content;
Word.Find wdFind = rng.Find;
wdFind.Text = "apple";
bool found = wdFind.Execute();
if (found)
{
rng.InsertAfter("\n");
rng.MoveStart(Word.WdUnits.wdParagraph, 1);
Word.InlineShape ils = rng.InlineShapes.AddPicture(@"C:\Test\avatar.jpg", false, true, rng);
}