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

  • 相关阅读:
    二维空间轨迹聚类
    Java 格式化输出
    Linux 小笔记
    Nginx ServerName 配置说明(转)
    LVS
    Nginx + tomcat 实现简单集群(基于反向代理方式)
    mysql 外键
    tomcat 日志输出
    tomcat https
    SpringMVC表单标签简介
  • 原文地址:https://www.cnblogs.com/ziwuxian/p/13840264.html
Copyright © 2020-2023  润新知