1

在尝试以编程方式创建 ms word 文档时,我遇到了一个问题:

我正在尝试找到(没有成功)一种方法来创建超链接或其他可以完成工作的方法,它将用户导航到文档中的另一个位置

一个地方可以是书签或我之前插入的其他段落对象

在 word 应用程序中,我选择一个文本,右键单击,按超链接并将链接指向“文档中的位置”

我在 C# 中找不到解决方法

帮助?

4

2 回答 2

2

除了添加交叉引用之外,还可以使用超链接

虽然据说超链接链接到 web url,但它也可以通过像这样使用它来引导您到文档内文本:

        Microsoft.Office.Interop.Word.Paragraph oPara2;
        object oRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
        oPara2 = oDoc.Content.Paragraphs.Add(ref oRng);
        oPara2.Range.Text = "Heading 2";
        oPara2.Format.SpaceAfter = 6;
        oPara2.Range.InsertParagraphAfter();
        oDoc.Bookmarks.Add("BookmakrName3", oRng);


        object oAddress = "#BookmakrName3";

        //Add text after the chart.
        wrdRng = oDoc.Bookmarks.get_Item(ref oEndOfDoc).Range;
        wrdRng.InsertParagraphAfter();
        wrdRng.InsertAfter("Click here to jump");
        wrdRng.Hyperlinks.Add(wrdRng, ref oAddress);

请注意,在给定地址中的书签名称之前有一个“#”。这就是诀窍

于 2013-06-16T05:08:01.673 回答
1

如果您想更频繁地对其他 Word 文档执行此操作,您可以看看 Latex,它可以在您的文档中创建非常快速的引用,但会生成 PDF。现在的问题是,您的 Word 以后是否仍然可以编辑,如果可以,那么我会选择 Ranger.InsertCrossReference。

关于 InsertCrossReference 的示例:

http://msdn.microsoft.com/fr-fr/library/microsoft.office.tools.word.bookmark.insertcrossreference.aspx

关于什么是乳胶。

http://fr.wikipedia.org/wiki/LaTeX

在这里,您可以在线编写您的乳胶文档。

https://www.sharelatex.com/

于 2013-06-13T13:45:50.400 回答