首页 > 技术文章 > 用 pageoffice 实现 pdf 文件签字盖章

ziwuxian 2020-10-19 14:55 原文

电子签名/签章的使用场景有哪些?

  • 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/

 

推荐阅读