链接到另一个文件
本文关键字:文件 另一个 链接 | 更新日期: 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 表示这不是外部链接(用于内部链接)