在句子之间使用C#在word中插入图像
Inserting images in word using C# between the sentence
我有一个 MS word 文件,里面有一些句子,我需要在行与行之间插入一些图像。当我在 Microsoft.Office.Interop.Word
中使用 AddPicture
方法时,我可以插入图像但不能插入特定位置。
除了 AddPicture
将图像插入现有 word 文件外,我没有找到任何插入方法。 我正在尝试在 apple 之后的特定行之后插入一张图片,应该有一张 apple 的图片。
这里我正在创建一个段落并尝试添加图像。这是我的初始文件:
这包含包含单词 apple、mango 和 grape 的段落。
这是我的代码的输出(如下)
图像应插入到苹果行之后
所需输出:
Required Output
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);
}
}
}
}
}
以上是我使用的代码
以下代码片段说明了如何完成此操作。注意。为了清楚起见,仅设置要查找的文本已被简化——可能需要指定许多其他属性;阅读 Word 语言参考中的 Find
功能。
如果找到搜索词,与 Find
关联的 Range
会更改为找到的词,并且可以采取进一步的操作。在这种情况下,在找到的术语之后插入一个新的(空)段落。 (问题指定术语是段落的全部内容,所以这就是本示例所假设的!)然后 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);
}
我有一个 MS word 文件,里面有一些句子,我需要在行与行之间插入一些图像。当我在 Microsoft.Office.Interop.Word
中使用 AddPicture
方法时,我可以插入图像但不能插入特定位置。
除了 AddPicture
将图像插入现有 word 文件外,我没有找到任何插入方法。 我正在尝试在 apple 之后的特定行之后插入一张图片,应该有一张 apple 的图片。
这里我正在创建一个段落并尝试添加图像。这是我的初始文件:
这包含包含单词 apple、mango 和 grape 的段落。
这是我的代码的输出(如下)
图像应插入到苹果行之后 所需输出:
Required Output
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);
}
}
}
}
}
以上是我使用的代码
以下代码片段说明了如何完成此操作。注意。为了清楚起见,仅设置要查找的文本已被简化——可能需要指定许多其他属性;阅读 Word 语言参考中的 Find
功能。
如果找到搜索词,与 Find
关联的 Range
会更改为找到的词,并且可以采取进一步的操作。在这种情况下,在找到的术语之后插入一个新的(空)段落。 (问题指定术语是段落的全部内容,所以这就是本示例所假设的!)然后 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);
}