1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 页面调用Adobe Reader自带的控件实现pdf打印

页面调用Adobe Reader自带的控件实现pdf打印

时间:2023-07-03 04:00:17

相关推荐

页面调用Adobe Reader自带的控件实现pdf打印

1、业务场景

一般的业务场景里,只需要将pdf文件下载到本地,然后打开直接打印就可以了。

但是,有的场景会考虑到pdf文件的敏感性,需要pdf文件不能被下载,只能打印且只能打印一次,这就需要考虑使用控件了。

2、Adobe Reader

Adobe Reader是一款优秀的PDF文档阅读软件。你可以使用Adobe Reader查看、打印和管理PDF文件,还可以使用 Adobe Reader的多媒体工具可以播放PDF中的视频和音乐。

这里我们会用到Adobe Reader里面自带的页面控件来实现pdf文件的打印功能。

点击下载Adobe Reader XI 11

3、页面调用Adobe Reader自带的控件实现pdf打印

<html><head><meta charset="UTF-8"><title>pdf打印</title></head><body><div align="center"><object id="pdfObj" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="950" height="562" border="0"><param name="src" value="print/myfile.pdf" /></object></div></body></html>

其中<param name="src" value="print/myfile.pdf" /> 中的value是pdf文件的相对路径。

需要注意的一点是,360浏览器打开页面时,必须用兼容模式,不然预期功能无法实现。

下面是博主的案例

当我们移动鼠标时,页面上会浮现出一个工具栏:

这个浮动工具栏有5个按钮,他们的作用从左到右分别是:保存,打印,缩小,放大,显示工具栏。

这里我们点击打印按钮,就可以弹出操作系统自带的打印配置页面了:

配置好相关属性后,点击打印即可成功打印pdf文件。

4、关闭控件的下载功能,且保证用户只能打印1次pdf文件

当有预览界面的时候,用户总能进行下载,所以我们可以去掉预览界面:将object控件中的width和height两个属性均设置为0

去掉预览界面后,我们可以用js代码调用控件提供的相关接口进行打印,代码如下:

<html><head><meta charset="UTF-8"><title>pdf打印</title></head><body><div align="center"><button id="prtBtn" onclick="printPage()">打印(P)</button><object id="pdfObj" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="0" height="0" border="0"><param name="src" value="print/myfile.pdf" /></object></div><script type="text/javascript">function printPage(){try {pdfObj.PrintAll();document.getElementById("prtBtn").setAttribute("disabled", true);} catch (e) {alert("未安装adobe reader插件,请联系管理员安装!");}}</script></body></html>

该页面只会显示一个打印按钮:

如此,点击打印之后,打印按钮变灰,且跳过打印配置页,直接打印pdf文件(这个时候打印会根据系统配置的默认打印机来打印)。

附:Adobe Reader ActiveX控件对外发布的功能说明

(参考:控件接口实现源码-英文版)

1、GetAcroPdfVersion:获取一个显示Acrobat ActiveX控件版本的值

2、GoBackwardStack:如果前面的视图存在,则转到视图堆栈上的先前视图。前面的视图可能在不同的文档中

3、GoForwardStack:如果下一个视图存在,则转到视图堆栈的下一个视图。下一个视图可能在另一个文档中

4、GotoFirstPage:转到文档的第一页,保持页面内的当前位置和缩放级别

5、GotoLastPage:进入文档的最后一页,保持页面内的当前位置和缩放级别

6、GotoNextPage:如果存在,则进入文档的下一页。保持页面内的当前位置和缩放级别

7、GotoPreviousPage:如果存在,则进入文档的前一页。保持页面内的当前位置和缩放级别

8、LoadFile:打开并在浏览器中显示指定的文档

9、PostMessage:(这个函数没有被Adobe记录下来)

10、Print:根据用户对话框中选择的选项打印文档。这些选项包括嵌入式打印(在给定页面上的一个边界矩形内打印),以及对指定的打印机进行交互式打印。

11、PrintAll:在不显示用户对话框的情况下打印整个文档。使用默认的打印机、页面设置和作业设置。

12、PrintAllFit:在不显示用户对话框的情况下打印整个文档,如果需要,页面会缩小,以适应打印机中页面的可想象区域。使用默认的打印机、页面设置和作业设置。

*注:其有1个参数,在打印文档时确定是否要缩放可映像区域。值为0表示不应该使用扩展,而正值值表明,如果需要,页面会缩小,以适应打印机中页面的可想象区域。

13、PrintPages:打印指定的页面,而不显示用户对话框。使用默认的打印机、页面设置和作业设置。

*注:其有2个参数,指定打印第几页到第几页

14、PrintPagesFit:打印指定的页面,而不显示用户对话框。使用默认的打印机、页面设置和作业设置

*注:其中第3个参数表示在打印文档时确定是否要缩放可映像区域。值为0表示不应该使用扩展,而正值值表明,如果需要,页面会缩小,以适应打印机中页面的可想象区域。

15、PrintWithDialog:根据用户对话框中选择的选项打印文档。这些选项包括嵌入式打印(在给定页面上的一个边界矩形内打印),以及对指定的打印机进行交互式打印。

16、SetCurrentHighlight:突出显示当前页面中指定的边界矩形中的文本选择。

17、SetCurrentPage:转到文档中指定的页面。保持页面内的当前位置和缩放级别

18、SetLayoutMode:根据指定的值设置页面视图的布局模式

19、SetNamedDest:将页面视图更改为指定字符串中的指定目标

20、SetPageMode:根据指定的值设置页面模式

21、ShowScrollbars:确定滚动条是否会出现在文档视图中

22、ShowToolbar:确定工具栏是否会出现在查看器中

23、SetView:根据指定的字符串设置页面的视图

24、SetViewRect:根据指定的坐标设置视图矩形(X偏移,Y偏移,宽度,高度)

25、SetViewScroll:根据指定的字符串设置页面的视图。根据视图模式,页面要么滚动到右边,要么按偏移量指定的数量进行滚动。

26、Zoom:根据指定的值设置放大率

27、SetZoomScroll:根据指定的值设置放大率,并根据指定的数量水平和垂直滚动页面视图。

首次发博文,希望各位朋友积极评论,不吝赐教!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。