页面调用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打印

 


	
		
		pdf打印
	
	
		

 

 

      其中  中的value是pdf文件的相对路径。

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

 

      下面是博主的案例

       页面调用Adobe Reader自带的控件实现pdf打印_第1张图片

 

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

 

       预览界面浮动工具栏

 

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

 

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

 

      页面调用Adobe Reader自带的控件实现pdf打印_第2张图片

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

 

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

 

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

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

 


	
		
		pdf打印
	
	
		

 

 

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

 

      页面调用Adobe Reader自带的控件实现pdf打印_第3张图片

 

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

 

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

 

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

      页面调用Adobe Reader自带的控件实现pdf打印_第4张图片

 

      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:根据指定的值设置放大率,并根据指定的数量水平和垂直滚动页面视图。

                                                                                                                                               

 

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

你可能感兴趣的:(JAVA,电子印章)