0

我正在使用 C# 应用程序进行开发以创建 PowerPoint 演示文稿。

我正在使用 OpenXML SDK 2.0 和 MS Office PP 2007。

我可以从我的模板中克隆我的幻灯片并在其上添加一个新形状。

但现在我想为我的形状添加一个超链接。

我怎样才能做到这一点?

我发现了这个:教程,但我需要在运行时添加这些超链接。

我已经试过了。

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、宽度、高度)

此致!

4

1 回答 1

0

你说“什么都没有发生”,所以我不会假设。请尝试以下一些想法:

1) 超链接以幻灯片模式显示。将演示文稿置于幻灯片放映模式(按 F5) - 然后单击形状。

2)您是否将您的附加nonVisualDrawingProperties1到您的shape1?要知道,右键单击 PP2007 中的形状并选择超链接...查看您的 URL 是否存在。如果它不存在,那么您需要确保nonVisualDrawingProperties1 将其添加到您的shape1ingenerateShapeText方法中。

3)如果URL在那里,但它不起作用,也许你的关系ID不正确?在具有相同文件的 PP2007 中,创建一个新的简单形状,添加一个新的超链接,用新文件名保存它,并使用生产力工具比较这两个文件。您应该会看到 PP2007 生成的新超链接和关系。

您在 中发布了部分代码generateShapeText。如果您可以提供完整的代码,这可能有助于我们与您一起解决此问题。-干杯。

于 2013-11-29T11:25:07.467 回答