请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需一步,快速开始

nison201

初级会员

12

主题

26

帖子

252

积分

初级会员

积分
252
nison201
初级会员   /  发表于:2019-8-23 14:40  /   查看:2596  /  回复:3
目标:对话框加载pdf,并在打开对话框时就显示到指定的节点。
我的思路:

我创建了一个form,在form中添加组件c1FlexViewerPane,设置dock属性为fill。之后拖入一个C1PdfDocumentSource空间到这个form中,设置c1FlexViewerPane1的documentSource属性为c1PdfDocumentSource1。之后再load函数中加入代码
                    c1PdfDocumentSource1.LoadFromFile(strPdfFile);
                    OutlineNodeCollection ol = c1PdfDocumentSource1.Document.Outlines;
在shown函数中加入
                     c1FlexViewerPane1.NavigateToOutlineNode(ol[2]);

问题:
c1FlexViewerPane1.NavigateToOutlineNode(ol[2]);这个函数没有执行,显示的还是默认的第一页。跳转的节点时存在的,如果我在添加一个定时器,设置间隔为2秒,在timer的相应函数中加入c1FlexViewerPane1.NavigateToOutlineNode(ol[2]);,是可以完成跳转的。

如何完成加载到Pdf指定节点的功能?(打开pdf,跳转到指定节点)



3 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-23 17:22:32
沙发
这个问题需要花一些时间验证一下,周一的时候我给你回复
回复 使用道具 举报
nison201
初级会员   /  发表于:2019-8-25 09:53:56
板凳
我自己的观察是,窗口或者文档没有加载完成就调用了函数c1FlexViewerPane1.NavigateToOutlineNode(ol[2]),导致这个函数没有执行。我想实现的功能是:在一个软件系统中,用户可以在很多个界面打开帮助文档,每个界面打开的帮助文档都是跟界面相关的,也就是定位到pdf的某个段落,你要是有其他的实现方式也可以推荐下
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-26 11:18:07
地板
问题暂时没有什么解决的办法,事件中没有提供任何关于加载完成之类的事件

这个问题我会提交给产品的同事,有反馈后给你回复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部