链接到另一个文件

本文关键字:文件 另一个 链接 | 更新日期: 2024-10-31 07:29:27

我正在使用open-xml生成一个word文档。

在那里我显示图像文件的名称即c:''config''1.jpgc:''config''2.jpg

单击这些名称(cntl+单击)时,应打开这些文件。但它不会转到文件,而是转到单词文档顶部的锚点。

我使用了如下超链接

Paragraph paraSummary = body.AppendChild(new Paragraph());
Run runSummary = paraSummary.AppendChild(new Run());
runSummary.AppendChild(new Break());
Hyperlink hl = new Hyperlink(new Run(new Text(item.ToString())))
{
 DocLocation = rootPath1 + "''" + item.ToString()
};
runSummary.AppendChild(hl);
mainPart.Document.Append(body);
mainPart.Document.Save();

生成的文件的XML是:

-<w:hyperlink w:docLocation="c:''config''1.jpg">-<w:r><w:t>1.jpg</w:t></w:r></w:hyperlink>

除了"超链接"或我在上面的代码中遗漏的任何内容之外,还有其他解决方案吗?

链接到另一个文件

根据 Open XML 规范。http://officeopenxml.com/WPhyperlink.php docLocation用于外部链接。

对于所有类型的超链接,我们必须创建一个关系。例如

在您的情况下,目标模式不能是外部的

在 Open XML SDK 中,您可以按以下代码示例实现这一点

Hyperlink hl =
new Hyperlink(new Run(new Text("Link1")))
{
    Id = "L1"
};
runSummary.AppendChild(hl);
mainPart.Document.Append(body);
mainPart.AddHyperlinkRelationship(new Uri("file:''C:''config''image.jpg"), false, "L1");

在添加超链接关系方法中,false 表示这不是外部链接(用于内部链接)