VSTO:如何在 Word 中的书签后添加具有不同格式的文本

发布于 2024-07-26 12:45:43 字数 507 浏览 6 评论 0原文

我有一个带书签的word文档。 我使用书签来获取范围对象,然后设置该对象的文本并将其添加到文档中。 现在我想在新添加的文本之后添加文本,但格式不同,我该如何执行此操作? 现在我使用类似的东西

object oRangeStart = (object) previousRange.End + 1;
object oRangeEnd = (object) previousRange.End + 2;
Word.Range newRange = doc.Range(ref oRangeStart, ref oRangeEnd);
newRange.Text = "Hello, world!";

,然后插入它,但它显示在错误的位置。

我无法使用单个范围的原因是我想插入诸如

Name

Lorem ipsum 之类的内容。 $99.99

,我相信我需要为我想要应用的每种样式使用不同的范围对象。

I have a word document with a bookmark. I use the bookmark to get a range object which I then set the text of and add to the document. Now I want to add text after that newly added text but with different formatting how do I do this? Now I use something like

object oRangeStart = (object) previousRange.End + 1;
object oRangeEnd = (object) previousRange.End + 2;
Word.Range newRange = doc.Range(ref oRangeStart, ref oRangeEnd);
newRange.Text = "Hello, world!";

and then insert it but it shows up at the wrong place.

The reason I can't use one single range is that I want to insert something like

Name

Lorem ipsum. $99.99

and I believe I need a different range object for each style I want to apply.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

等数载,海棠开 2024-08-02 12:45:43

我通常在需要时使用范围来交换文本。 尝试使用 Application.Selection:

Word.Selection curSel = Application.Selection;
curSel.TypeText("Type Some Text");

在您的情况下,请尝试以下操作:

Word.Selection curSel;
int endOfRange =  previousRange.End + 1;
curSel.SetRange(endOfRange, endOfRange);

curSel.Font.Bold = 1;
curSel.TypeText("Hello, world!");
curSel.Font.Bold = 0;
curSel.TypeParagraph();

I typically use range to swap out text when needed. Try using Application.Selection:

Word.Selection curSel = Application.Selection;
curSel.TypeText("Type Some Text");

In your case, try this:

Word.Selection curSel;
int endOfRange =  previousRange.End + 1;
curSel.SetRange(endOfRange, endOfRange);

curSel.Font.Bold = 1;
curSel.TypeText("Hello, world!");
curSel.Font.Bold = 0;
curSel.TypeParagraph();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文