请教PB怎么操作PDFView.ocx
答案:1 悬赏:50 手机版
解决时间 2021-03-23 12:21
- 提问者网友:沉默菋噵
- 2021-03-23 07:12
请教PB怎么操作PDFView.ocx
最佳答案
- 五星知识达人网友:像个废品
- 2021-03-23 08:42
楼主你好。 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()
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯