首页 新闻 赞助 找找看

c#操作ppt,获取ppt中超链接。

0
悬赏园豆:200 [待解决问题]

c#操作ppt,获取ppt中超链接,然后修改超链接的texttodisplay属性时,会将adress属性置为null,这个是什么原因?请大神们指点一下。

aixuebing的主页 aixuebing | 初学一级 | 园豆:2
提问于:2015-01-10 11:40
< >
分享
所有回答(2)
0

1、Powerpoint 版本?

2、怎么操作PPT? 代码呢?

明显就是代码中有问题或者是版本兼容性问题之类,你这些都不说,怎么帮你。

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-01-10 11:46

是10版本的,

PPT.Application pa = new PPT.Application();
PPT.Presentation pp = null;
pp = pa.Presentations.Open(fileName,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoFalse,Microsoft.Office.Core.MsoTriState.msoFalse);
foreach (PPT.Slide mSlide in pp.Slides)
{
PPT.Hyperlinks links = mSlide.Hyperlinks;
for (int i = 1; i <= links.Count; i++)
{
PPT.Hyperlink link = links[i];

link.Address = "www.test.com";

link.TextToDisplay = "test";

这个问题比较特殊,如果超链接在ppt的起始位置,是可以替换的,但是如果前面加了字符,那么就会出现描述中的问题。

支持(0) 反对(0) aixuebing | 园豆:2 (初学一级) | 2015-01-10 11:54

@aixuebing: 场景描述仍然不够清楚,无法进行测试。

建议做以下单独测试:

1、一个PPT,上面有三个文本,分别链接到www.microsoft.com , www.msn.com, www.google.com。

2、试试看能不能读取出来。

3、试试看能不能全部修改为www.sina.com.cn

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-01-10 12:23

@爱编程的大叔: 上面的code弄到vs里可以运行的

按照你说说的三个连接都可以获取到,如果都是microsoft是第一个位置(就是新建ppt,然后在连直接写超链接)是可以替换的,之后的在替换text,就会出现将url置成null的问题。

此问题重现方式:

1.建立一个ppt。

2.在上面随便写一些东西,然后添加一个超链接,在调试的时候就会发现给超链接的texttodisplay属性赋值的时候,会将adress置成null.

支持(0) 反对(0) aixuebing | 园豆:2 (初学一级) | 2015-01-10 12:29

@aixuebing: 测试过了,不会,不知道你哪儿出错了。

For i = 1 To Me.Hyperlinks.Count
Me.Hyperlinks.Item(i).texttodisplay= "http://www.21cn.com"
Me.Hyperlinks.Item(i).Address = "http://www.21cn.com" Next i

 确切的情况是这样的,

所有的Hyperlink都还在,但是如果这三个是在一个SLIDE里面,会出现只有第一个还显示链接以及可以按右键出现超级链接的情况。

只有当这三个链接是在不同的SLIDE或是不同区域时,才能出现链接的状态。

这个问题应该是由于POWERPOINT的某些特性造成的,你如果测试Hyperlinks.count,会发现还是三个链接,链接并没有变成NULL,只是在POWERPOINT界面上没有效果。

再次测试,发现这个效果其实只是在编辑状态时没有,当运行F5时,每个链接仍然是有效的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-01-10 12:42

@爱编程的大叔: 你可以修改一个texttodisplay

支持(0) 反对(0) aixuebing | 园豆:2 (初学一级) | 2015-01-10 12:43

@aixuebing: 修改过texttodisplay了。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-01-10 12:52

@爱编程的大叔: 在超链接前面要加东西的,如果只是超链接,是没问题的。如果有字符的话,连接就会跑到字符上去。

支持(0) 反对(0) aixuebing | 园豆:2 (初学一级) | 2015-01-10 12:54

@aixuebing: 

你试试换用不同的操作方式或者对象看看,不要被一个方式堵死了。

这种小事情,只要一个结果正确的,没啥好讨论的。

支持(0) 反对(0) 爱编程的大叔 | 园豆:30839 (高人七级) | 2015-01-10 15:36
0

请问您知道怎么往PPT中插入超链接吗?我想通过C#向PPT中插入一张带有超链接的图片。谢谢

一万句顶一句 | 园豆:136 (初学一级) | 2015-07-24 17:23

你可以试试第三方控件来实现,像Spire.Presentation for .NET。它支持给幻灯片添加一张带有超链接的图片,在播放幻灯片时点击图片就能跳转到指定的网址。相关代码示例可以参考他们官网教程。https://www.e-iceblue.cn/hyperlink/add-and-get-hyperlink-from-image-in-powerpoint.html
Spire.Presentation for .NET下载地址: https://www.e-iceblue.cn/Downloads/Spire-Presentation-NET.html

支持(0) 反对(0) Tina_Tang | 园豆:346 (菜鸟二级) | 2021-07-12 17:31
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册