2013-12-17 94 views
1

我使用open-xml生成word文檔。鏈接到另一個文件

有我顯示圖像文件的名稱 即 C:\設置\ 1.JPG C:\設置\ 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> 

是有比「超鏈接」或任何其它的任何其它的解決方案,我在上面的代碼已經錯過。

+0

嘗試手動創建word文件並向圖像添加超鏈接在那裏,如果這樣的話,你可以查看它的xml,然後嘗試在代碼中複製相同的代碼。希望這可以幫助。 –

回答

1

根據Open XML規範。 http://officeopenxml.com/WPhyperlink.php docLocation用於外部鏈接。

對於所有類型的超鏈接,我們必須創建一個關係。 例如

你的情況TargetMode不能是外部

在開放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"); 
在AddHyperlinkRelationship方法

虛假意味着此不是外部鏈接(用於內部鏈接)

相關問題