用 pageoffice 实现 pdf 文件签字盖章
电子签名/签章的使用场景有哪些?
-
1、 电子报告
-
2、 证书电子版固化
-
3、 企业工作流审批
-
4、 电商订单存证
-
5、 系统单据保全
为什么要在pdf 文件上盖章?
在很多合同签订的过程中,很多人直接将公司的公章扫描成图片格式,比如 jpeg bmp gif 等等,然后在插入 word 或者 excel 中,这样操作极大增加了安全隐患,因为图片格式的公章很容易被复制到其他的文档中。
PDF 作为一种版式文档,版面固定、不跑版,使电子文档在使用过程中,呈现效果不因软硬件环境、操作者的变化而变化,在版式、版面、字体、字号等方面与纸质文件保持完全一致。是目前比较安全的文件格式。
所以今天给大家分享一个 给pdf 文档在线盖章的方法。pageoffice 实现pdf 文件的签字盖章
1:生成 pdf 电子文件的方法
(1)纸质文件扫描成pdf 文件
(2)pageoffice 在线把 word 或者 excel 文件转换 成pdf 文件(可以参考一下这个篇文章https://my.oschina.net/u/3507515/blog/1810161)
2:盖章
(核心代码)
//添加盖章的自定义按钮 pdfCtrl.addCustomToolButton("加盖印章", "InsertSeal()", 2); //添加签字的自定义按钮 pdfCtrl.addCustomToolButton("签字", "AddHandSign()", 3);
//盖章的js方法 function InsertSeal() { try { document.getElementById("PDFCtrl1").ZoomSeal.AddSeal();//如果使用ZoomSeal中的USBKEY方式盖章,第一个参数不能为盖章用户登录名,只能为null或者空字符串 } catch(e) {} } //签字的js 方法 function AddHandSign() { try { document.getElementById("PDFCtrl1").ZoomSeal.AddHandSign(); } catch(e) {} }
具体实现过程
(1)先准备一个 test.pdf 文件,d 盘下。(注意 : 本文中的磁盘路径都是服务器上的路径)
(2)打开pdf文件,签字 盖章 openPDF.jsp
<%@ page language="java" import="com.zhuozhengsoft.pageoffice.PDFCtrl" pageEncoding="utf-8" %> <% PDFCtrl pdfCtrl1 = new PDFCtrl(request); pdfCtrl1.setServerPage(request.getContextPath() + "/poserver.zz"); //此行必须 //设置保存页面 pdfCtrl1.setSaveFilePage("SaveFile.jsp"); // Create custom toolbar pdfCtrl1.addCustomToolButton("保存", "Save()", 1); pdfCtrl1.addCustomToolButton("加盖印章", "InsertSeal()", 2); pdfCtrl1.addCustomToolButton("签字", "AddHandSign()", 3); pdfCtrl1.addCustomToolButton("打印", "PrintFile()", 6); pdfCtrl1.addCustomToolButton("隐藏/显示书签", "SetBookmarks()", 0); pdfCtrl1.addCustomToolButton("-", "", 0); pdfCtrl1.addCustomToolButton("实际大小", "SetPageReal()", 16); pdfCtrl1.addCustomToolButton("适合页面", "SetPageFit()", 17); pdfCtrl1.addCustomToolButton("适合宽度", "SetPageWidth()", 18); pdfCtrl1.addCustomToolButton("-", "", 0); pdfCtrl1.addCustomToolButton("首页", "FirstPage()", 8); pdfCtrl1.addCustomToolButton("上一页", "PreviousPage()", 9); pdfCtrl1.addCustomToolButton("下一页", "NextPage()", 10); pdfCtrl1.addCustomToolButton("尾页", "LastPage()", 11); pdfCtrl1.addCustomToolButton("-", "", 0); pdfCtrl1.addCustomToolButton("向左旋转90度", "SetRotateLeft()", 12); pdfCtrl1.addCustomToolButton("向右旋转90度", "SetRotateRight()", 13); pdfCtrl1.webOpen("d:\\test.pdf"); %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body style="overflow:hidden"> <!--************** 卓正 PageOffice 客户端代码开始 ************************--> <script language="javascript" type="text/javascript"> function Save() { document.getElementById("PDFCtrl1").WebSave(); } function InsertSeal() { try { document.getElementById("PDFCtrl1").ZoomSeal.AddSeal();//如果使用ZoomSeal中的USBKEY方式盖章,第一个参数不能为盖章用户登录名,只能为null或者空字符串 } catch(e) {} } function AddHandSign() { try { //document.getElementById("PDFCtrl1").ZoomSeal.SetPenWidth(3); //document.getElementById("PDFCtrl1").ZoomSeal.SetPenColor(0*65535+0*255+255); document.getElementById("PDFCtrl1").ZoomSeal.AddHandSign(); } catch(e) {} } function AfterDocumentOpened() { //alert(document.getElementById("PDFCtrl1").Caption); } function SetBookmarks() { document.getElementById("PDFCtrl1").BookmarksVisible = !document.getElementById("PDFCtrl1").BookmarksVisible; } function PrintFile() { document.getElementById("PDFCtrl1").ShowDialog(4); } function SwitchFullScreen() { document.getElementById("PDFCtrl1").FullScreen = !document.getElementById("PDFCtrl1").FullScreen; } function SetPageReal() { document.getElementById("PDFCtrl1").SetPageFit(1); } function SetPageFit() { document.getElementById("PDFCtrl1").SetPageFit(2); } function SetPageWidth() { document.getElementById("PDFCtrl1").SetPageFit(3); } function ZoomIn() { document.getElementById("PDFCtrl1").ZoomIn(); } function ZoomOut() { document.getElementById("PDFCtrl1").ZoomOut(); } function FirstPage() { document.getElementById("PDFCtrl1").GoToFirstPage(); } function PreviousPage() { document.getElementById("PDFCtrl1").GoToPreviousPage(); } function NextPage() { document.getElementById("PDFCtrl1").GoToNextPage(); } function LastPage() { document.getElementById("PDFCtrl1").GoToLastPage(); } function SetRotateRight() { document.getElementById("PDFCtrl1").RotateRight(); } function SetRotateLeft() { document.getElementById("PDFCtrl1").RotateLeft(); } </script> <div style="height:850px;width:auto;"> <%=pdfCtrl1.getHtmlCode("PDFCtrl1")%> </div> </body> </html>
(3)保存 SaveFile.jsp
FileSaver fs=new FileSaver(request,response); fs.saveToFile(d:\\test.pdf); fs.close();
3:实现效果
注意:一定要用pageoffice 5 版本才可以支持 pdf 盖章
也可以直接从卓正的官网下载示例参考试用
http://www.zhuozhengsoft.com/dowm/