2013-10-30 47 views
0

我正在用C#應用程序開發以創建PowerPoint演示文稿。如何使用OpenXml SDK向演示文稿中的形狀添加超鏈接

我使用的OpenXML SDK 2.0和MS Office 2007 PP

我能夠從我的模板複製我的幻燈片,並在其上添加一個新的形狀。

但現在我想添加一個超鏈接到我的形狀。

我該怎麼做?

我發現這個:tutorial但我需要在運行時添加這些超鏈接。

我已經試過了。

SlidePart currentSlidePart = CloneSlidePart(presentationPart, slidePart); 
Slide s = currentSlidePart.Slide; 
currentSlidePart.AddHyperlinkRelationship(new System.Uri("myuri", System.UriKind.Absolute), true, "rId2"); 

然後我調用的方法來創建形狀:

s.CommonSlideData.ShapeTree.Append(generateTextShape("some content", shape)); 

這是方法:

public static Shape generateTextShape(String input, ShapePosition shapePosition) 
{ 
      Shape shape1 = new Shape(); 
... 
      D.HyperlinkOnClick hyperlinkOnClick1 = new D.HyperlinkOnClick() { Id = "rId2" }; 
      nonVisualDrawingProperties1.Append(hyperlinkOnClick1); 
... 
    return shape1; 
} 

現在,沒有任何反應.. 我在做什麼錯, 有什麼建議麼?

(類ShapePosition僅僅是X,Y,寬度,高度的形狀的)

此致!

回答

0

你說「什麼都沒有發生」,所以我不會假設。請嘗試幾個這些想法:

1)超鏈接以幻燈片放映模式顯示。將演示文稿放入幻燈片放映模式(點擊F5) - 然後點擊形狀。

2)您是否將nonVisualDrawingProperties1附加到您的shape1?告訴,右鍵單擊PP2007中的形狀並選擇超鏈接...查看您的URL是否存在。如果它不在那裏,那麼你需要確保nonVisualDrawingProperties1被添加到shape1generateShapeText方法中。 3)如果URL存在,但它不工作,也許你有你的關係Ids不正確? 在具有相同文件的PP2007中,創建一個新的簡單形狀,添加一個新的超鏈接,將其保存爲一個新文件名,並將這兩個文件與生產力工具進行比較。您應該看到PP2007生成的新超鏈接和關係。

您公開的部分代碼generateShapeText。如果您可以放置​​完整的代碼,那可能會幫助我們解決這個問題。 -乾杯。

+0

你好Taterhead,我已經忘記了這個問題,因爲我解決了這個問題。對不起。問題的解決方案很簡單。如果您對解決方案感興趣,請告訴我!我稍後會更新我的問題。 – Leviathan

+1

@Leviathan嗨。你能不能更新你的問題,幷包括你的解決方案?碰巧遇到同樣的問題,您的解決方案將非常有幫助:) 謝謝。 – Keith

相關問題