请教PB怎么操作PDFView.ocx
1个回答
2015-10-23
展开全部
楼主你好。 1、在网上下一个pdfview.ocx 进行处理; 2、以IE方式下载打开,这种方式需要本机装有PDF
最近正好在用 ole 打文档,发现这里面名堂蛮多,随便谈几句!
就 pb 的 ole 控件类型来说,分为 3 类衡枝:olecontrol, olecustomcontrl, oleobject
从 pb 对象浏览器中的 ole 类型来说亦有三种闹拦烂:olecontrol, olecustomcontrol, programming control
不难发现,和上面非常相似,但最后一个为什么不一样的叫法,下面我会讲到。
从 pb 开发环境中可视化添加 ole 控件的方法说,也分为 3 种:insert new, insert from file, insert control
如果一定要在控件内显示文档的话:第 1 种方法只适合于新增一个文档,无法打开别的文档;第 2 种方法只适合于打开一个固定位置的文档(即席方式);第 3 种方法没有限制,但问题是很多软件并不提供第 3 种类型的控件(比如 word, excel)!再加上 pb 对 ole 的支持一直以来都存在问题,前两种方法极易导致 pb 自身异常或者相关的软件异常,非重装系统难以恢复,令人望而却步!
oleobject 是一种动态 ole 控件,也就是可以连接任意类型的 ole 控件,但由于控件本身的支持问题,oleobject 实际可用的基本上只有 pb browser 中的 programming control 对象以及 olecustomobject 中的不可视对象,其它的虽然连得上也用不起来!
再说明一下什么是 olecustomobject,说白了,就是 ActiveX,它和 olecontrol 有什么不同?olecontrol 分为即席方式(inplace!)也就是在你的控件内打开,离席方式(offsite!)也就是在你的控件外打开,ActiveX 没有这个选择,它必须是控件内打开的。微软为什么要搞这个限制?因为这样的话,ActiveX 就不可以直接利用操作系统创建自己的窗口,而必须依附在宿主程序上,于是 ActiveX 就可以在 iis 服务端和网页脚本结合了!睢,这就是差别,因为限制某种功能而获得了更好的通用性。
上面绕了这么多,其实归纳一下也很简单 olecontrol 类型基本上没有使用的液漏必要,即席激活限制太多不实用,离席激活直接用 oleobject 连接一下就是了,没必要非在窗口上贴个控件。对于可视的 ActiveX(olecustomobject) 必须在窗口贴个控件,再从之个控件操作;对于不可视的 ActiveX,实在想贴也可以,不想的话直接 oleobject 连接。
最后两段代码大致说明一下 oleobject 和 Activex 的调用:
// 打印一个 word 文件
ioo_word = create oleobject
if not ioo_word.IsAlive() then ioo_word.ConnectToNewObject("word.application")
ioo_word.documents.Oopen("c:\test.doc")
ioo_word.documents.Print()
ioo_word.documents.Close()
ioo_word.Quit()
ioo_word.DisconnectObject()
// 打印一个 pdf 文件
olecustomobject iocc_acrobat
iocc_acrobat = w_test.ole_acrobat
iocc_acrobat.LoadFile("c:\test.pdf")
iocc_acrobat.Print()
thomsonly 2014-07-18
评价(0)(0)(0)引用
漏了个 .object
// 打印一个 pdf 文件
olecustomobject iocc_acrobat
iocc_acrobat = w_test.ole_acrobat
iocc_acrobat.object.LoadFile("c:\test.pdf")
iocc_acrobat.object.Print()
最近正好在用 ole 打文档,发现这里面名堂蛮多,随便谈几句!
就 pb 的 ole 控件类型来说,分为 3 类衡枝:olecontrol, olecustomcontrl, oleobject
从 pb 对象浏览器中的 ole 类型来说亦有三种闹拦烂:olecontrol, olecustomcontrol, programming control
不难发现,和上面非常相似,但最后一个为什么不一样的叫法,下面我会讲到。
从 pb 开发环境中可视化添加 ole 控件的方法说,也分为 3 种:insert new, insert from file, insert control
如果一定要在控件内显示文档的话:第 1 种方法只适合于新增一个文档,无法打开别的文档;第 2 种方法只适合于打开一个固定位置的文档(即席方式);第 3 种方法没有限制,但问题是很多软件并不提供第 3 种类型的控件(比如 word, excel)!再加上 pb 对 ole 的支持一直以来都存在问题,前两种方法极易导致 pb 自身异常或者相关的软件异常,非重装系统难以恢复,令人望而却步!
oleobject 是一种动态 ole 控件,也就是可以连接任意类型的 ole 控件,但由于控件本身的支持问题,oleobject 实际可用的基本上只有 pb browser 中的 programming control 对象以及 olecustomobject 中的不可视对象,其它的虽然连得上也用不起来!
再说明一下什么是 olecustomobject,说白了,就是 ActiveX,它和 olecontrol 有什么不同?olecontrol 分为即席方式(inplace!)也就是在你的控件内打开,离席方式(offsite!)也就是在你的控件外打开,ActiveX 没有这个选择,它必须是控件内打开的。微软为什么要搞这个限制?因为这样的话,ActiveX 就不可以直接利用操作系统创建自己的窗口,而必须依附在宿主程序上,于是 ActiveX 就可以在 iis 服务端和网页脚本结合了!睢,这就是差别,因为限制某种功能而获得了更好的通用性。
上面绕了这么多,其实归纳一下也很简单 olecontrol 类型基本上没有使用的液漏必要,即席激活限制太多不实用,离席激活直接用 oleobject 连接一下就是了,没必要非在窗口上贴个控件。对于可视的 ActiveX(olecustomobject) 必须在窗口贴个控件,再从之个控件操作;对于不可视的 ActiveX,实在想贴也可以,不想的话直接 oleobject 连接。
最后两段代码大致说明一下 oleobject 和 Activex 的调用:
// 打印一个 word 文件
ioo_word = create oleobject
if not ioo_word.IsAlive() then ioo_word.ConnectToNewObject("word.application")
ioo_word.documents.Oopen("c:\test.doc")
ioo_word.documents.Print()
ioo_word.documents.Close()
ioo_word.Quit()
ioo_word.DisconnectObject()
// 打印一个 pdf 文件
olecustomobject iocc_acrobat
iocc_acrobat = w_test.ole_acrobat
iocc_acrobat.LoadFile("c:\test.pdf")
iocc_acrobat.Print()
thomsonly 2014-07-18
评价(0)(0)(0)引用
漏了个 .object
// 打印一个 pdf 文件
olecustomobject iocc_acrobat
iocc_acrobat = w_test.ole_acrobat
iocc_acrobat.object.LoadFile("c:\test.pdf")
iocc_acrobat.object.Print()
网易云信
2023-12-06 广告
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询