精华内容
下载资源
问答
  • 用photoshop制作电子版签名图片

    万次阅读 2017-02-09 10:38:28
    第一步:PS中打开签名图片 ...在一张空白的纸上签上自己的名字,用扫描仪或拍照...电子印章制作步骤 电子印章制作软件下载 电子印章制作软件使用手册 第二步:截取签名区域 用PS“截取工具”,选取签名

    from http://www.smartsys.cn/faq-2.html

    第一步:PS中打开签名图片

    在一张空白的纸上签上自己的名字,用扫描仪或拍照,将它储存成*.jpg格式的文件。打开PS 【文件】-【打开】,存储签名的.jpg文件。

     
    电子印章制作步骤 电子印章制作软件下载 电子印章制作软件使用手册

    第二步:截取签名区域

    用PS“截取工具”,选取签名区域,去掉多余的部分,只留下签名区域。

     
    电子印章集成应用图例 电子印章收费标准 电子签章软件用户手册

    第三步:设置签名透明背景

    1、删除背景图层,找到图层对话框,选中背景图层,点击图层删除按钮(红色小方块内)。

    2、删除签名白色区域,左边的工具栏中选择魔术棒工具(红色小方块内),点击签名图片,可以删除背景了,方法有三种:a、Ctrl+D;b、按Delete键;c、在上面菜单栏中选择“编辑”——再选择“剪切”或“清除”。


    电子签章软件试用 电子签章u盾加密锁 数字证书办理 电子印章应用图例

    第四步:保存PGN透明签名图片

    1、图片制作完毕后,就该保存图片了。在文件中找到“存储为”按钮并用鼠标左键单击,或直接按下热键(Shift+Ctrl+S)就可以直接进入存储对话框了。切记将图片保存为PNG格式或GIF格式,不要保存为JPG或BMP格式。

    2、电子签名制作完成后。

    第五步:电子签名应用图例

    电子签名可在电子商务、办公审批、电子合同、公文审批、图纸盖章、报销资料、财务报表等应用中。


    展开全文
  • java 制作签名版电子合同

    千次阅读 2020-04-07 16:57:26
    目前方案有两个,使用docx4j插件根据书签生成word版电子合同 或者 使用itext插件根据PDF模版生成PDF版电子合同。 方案一:使用docx4j生成word电子合同 本文参考文章来自:https://www.cnblogs.com/qlqwjy/p/986...

    Java 制作带签名的电子合同

    根据项目需求,需要生成一个带电子签名的合同,即客户在手机进行签名后,将签名图片合成到合同中。

    目前方案有两个,使用docx4j插件根据书签生成word版电子合同 或者 使用itext插件根据PDF模版生成PDF版电子合同。

    方案一:使用docx4j生成word电子合同

    本文参考文章来自:https://www.cnblogs.com/qlqwjy/p/9866484.html

    1.引入docx4j

    本案例使用maven仓库引入jar包

    <dependency>
        <groupId>org.docx4j</groupId>
        <artifactId>docx4j</artifactId>
        <version>6.1.2</version>
    </dependency>

    2.docx4j配置

    可以不添加配置文件,但debug日志会提示找不到docx4j配置文件

    在src下创建docx4j.properties配置文件,maven项目请放在resources文件夹下

    # Page size: use a value from org.docx4j.model.structure.PageSizePaper enum
    # eg A4, LETTER
    docx4j.PageSize=LETTER
    # Page size: use a value from org.docx4j.model.structure.MarginsWellKnown enum
    docx4j.PageMargins=NORMAL
    docx4j.PageOrientationLandscape=false
    # Page size: use a value from org.pptx4j.model.SlideSizesWellKnown enum
    # eg A4, LETTER
    pptx4j.PageSize=LETTER
    pptx4j.PageOrientationLandscape=false
    # These will be injected into docProps/app.xml
    # if App.Write=true
    docx4j.App.write=true
    docx4j.Application=docx4j
    docx4j.AppVersion=6.1.2
    # of the form XX.YYYY where X and Y represent numerical values
    # These will be injected into docProps/core.xml
    docx4j.dc.write=true
    docx4j.dc.creator.value=docx4j
    docx4j.dc.lastModifiedBy.value=docx4j
    #
    #docx4j.McPreprocessor=true
    # If you haven't configured log4j yourself
    # docx4j will autoconfigure it. Set this to true to disable that
    docx4j.Log4j.Configurator.disabled=false

    3.构建WordProcessingMlPackage对象

    docx格式文档可以理解为一个压缩包,若将其解压可看到一个类似前端的工程项目,其中document.xml用于全文的配置,详细解说请自行查阅资料

    WordprocessingMLPackage是操作word文档包对象;


    创建新的word文档

    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    
    /**
     * 构建新word文件
     */
    public static WordprocessingMLPackage build() throws Exception{
        return WordprocessingMLPackage.createPackage();
    }

    加载存在的word文档

    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    
    /**
     * 读取存在的word文件
     * @param wordFilePath word文件路径
     */
    public static WordprocessingMLPackage load(String wordFilePath) throws Exception{
        return WordprocessingMLPackage.load(new File(wordFilePath));
    }

    4.获取书签

    书签:CTBookmark对象

    import org.docx4j.TraversalUtil;
    import org.docx4j.dml.wordprocessingDrawing.Inline;
    import org.docx4j.finders.RangeFinder;
    import org.docx4j.jaxb.Context;
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
    import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
    import org.docx4j.org.apache.poi.util.IOUtils;
    import org.docx4j.wml.*;
    
    public static void main(String[] args) throws Exception {
        String wordFilePath = "";
        WordprocessingMLPackage wordMLPackage = load(wordFilePath);
    
        // 提取正文
        MainDocumentPart main = wordMLPackage.getMainDocumentPart();
        Document doc = main.getContents();
        Body body = doc.getBody();
    
        // 获取段落
        List<Object> paragraphs  = body.getContent();
    
        // 提取书签并获取书签的游标
        RangeFinder rt = new RangeFinder("CTBookmark", "CTMarkupRange");
        new TraversalUtil(paragraphs, rt);
    
    
        // 遍历书签
        for (CTBookmark bm : rt.getStarts()) {
            System.out.println("name:"+bm.getName());
        }
    }

    5.在书签位置加入图片

    import org.docx4j.TraversalUtil;
    import org.docx4j.dml.wordprocessingDrawing.Inline;
    import org.docx4j.finders.RangeFinder;
    import org.docx4j.jaxb.Context;
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
    import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
    import org.docx4j.org.apache.poi.util.IOUtils;
    import org.docx4j.wml.*;
    
    public static void addImage(WordprocessingMLPackage wPackage,CTBookmark bm) throws Exception{
        P p = (P) (bm.getParent());
        ObjectFactory factory = Context.getWmlObjectFactory();
        R run = factory.createR();
    
        // 读入图片并转化为字节数组,因为docx4j只能字节数组的方式插入图片
        // byte[] bytes = IOUtils.toByteArray(new FileInputStream("图片路径"));
        byte[] bytes = getFileBytes("图片路径");
        // 开始创建一个行内图片
        BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wPackage, bytes);
        // 最后一个是限制图片的宽度,缩放的依据
        Inline inline = imagePart.createImageInline(null, null, 0, 1, false, 0);
        // 构建绘图
        Drawing drawing = factory.createDrawing();
        // 加入图片段落
        drawing.getAnchorOrInline().add(inline);
        run.getContent().add(drawing);
        // 清理书签所在数据
        // p.getContent().clear();
        // 加入图片信息
        p.getContent().add(run);
    
    }
    
    public static byte[] getFileBytes(String filePath) throws Exception{
        File file = new File(filePath);
        if(!file.exists()){
            throw new Exception("文件不存在!");
        }
    
        byte[] data = null;
        try(FileInputStream fis = new FileInputStream(file);ByteArrayOutputStream baos = new ByteArrayOutputStream()){
            int len;
            byte[] buffer = new byte[1024];
            while ((len = fis.read(buffer)) != -1) {
                baos.write(buffer, 0, len);
            }
            data = baos.toByteArray();
        }
        return data;
    }

    6.保存文件

    必须调用保存,否则更改无效

    // 保存有两种方式
    // 方式一
    wordMLPackage.save(new File(wordFilePath));
    
    // 方式二
    Docx4J.save(wordMLPackage, new File(wordFilePath));

    7.完整代码

    
    import org.docx4j.TraversalUtil;
    import org.docx4j.dml.wordprocessingDrawing.Inline;
    import org.docx4j.finders.RangeFinder;
    import org.docx4j.jaxb.Context;
    import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
    import org.docx4j.openpackaging.parts.WordprocessingML.BinaryPartAbstractImage;
    import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
    import org.docx4j.org.apache.poi.util.IOUtils;
    import org.docx4j.wml.*;
    
    import javax.xml.bind.JAXBElement;
    import java.io.ByteArrayOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    public class WordTest {
        public static void main(String[] args) throws Exception {
            String wordFilePath = "word文档路径";
            WordprocessingMLPackage wordMLPackage = load(wordFilePath);
    
            // 提取正文
            MainDocumentPart main = wordMLPackage.getMainDocumentPart();
            Document doc = main.getContents();
            Body body = doc.getBody();
    
            // 获取段落
            List<Object> paragraphs  = body.getContent();
    
            // 提取书签并获取书签的游标
            RangeFinder rt = new RangeFinder("CTBookmark", "CTMarkupRange");
            new TraversalUtil(paragraphs, rt);
    
            // 遍历书签
            for (CTBookmark bm : rt.getStarts()) {
                System.out.println("name:"+bm.getName());
                // 替换image
                if ("sign".equals(bm.getName())){
                    addImage(wordMLPackage, bm);
                    break;
                }
            }
    
            save(wordMLPackage,wordFilePath);
        }
    
        public static void addImage(WordprocessingMLPackage wPackage,CTBookmark bm) throws Exception{
            P p = (P) (bm.getParent());
            ObjectFactory factory = Context.getWmlObjectFactory();
            R run = factory.createR();
    
            // 读入图片并转化为字节数组,因为docx4j只能字节数组的方式插入图片
            // byte[] bytes = IOUtils.toByteArray(new FileInputStream("图片文件路径"));
            byte[] bytes = getFileBytes("图片文件路径");
            // 开始创建一个行内图片
            BinaryPartAbstractImage imagePart = BinaryPartAbstractImage.createImagePart(wPackage, bytes);
            // 最后一个是限制图片的宽度,缩放的依据
            Inline inline = imagePart.createImageInline(null, null, 0, 1, false, 0);
            // 构建绘图
            Drawing drawing = factory.createDrawing();
            // 加入图片段落
            drawing.getAnchorOrInline().add(inline);
            run.getContent().add(drawing);
            // 清理书签所在数据
            // p.getContent().clear();
            // 加入图片信息
            p.getContent().add(run);
        }
    
        /**
         * 构建文件
         */
        public static WordprocessingMLPackage build() throws Exception{
            return WordprocessingMLPackage.createPackage();
        }
    
        /**
         * 读取存在的word文件
         * @param wordFilePath word文件路径
         */
        public static WordprocessingMLPackage load(String wordFilePath) throws Exception{
            return WordprocessingMLPackage.load(new File(wordFilePath));
        }
    
        /**
         * 保存
         * @param wordMLPackage word
         */
        public static void save(WordprocessingMLPackage wordMLPackage,String wordFilePath) throws Exception{
            wordMLPackage.save(new File(wordFilePath));
        }
    
        public static byte[] getFileBytes(String filePath) throws Exception{
            File file = new File(filePath);
            if(!file.exists()){
                throw new Exception("文件不存在!");
            }
    
            byte[] data = null;
            try(FileInputStream fis = new FileInputStream(file);ByteArrayOutputStream baos = new ByteArrayOutputStream()){
                int len;
                byte[] buffer = new byte[1024];
                while ((len = fis.read(buffer)) != -1) {
                    baos.write(buffer, 0, len);
                }
                data = baos.toByteArray();
            }
            return data;
        }
    }
    

    8.效果图

    加入标签

    使用docx4j在标签位置加入图片

    方案二:使用itext生成PDF电子合同

    1.引入itext

    <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itextpdf</artifactId>
        <version>5.5.11</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian -->
    <dependency>
        <groupId>com.itextpdf</groupId>
        <artifactId>itext-asian</artifactId>
        <version>5.2.0</version>
    </dependency>

    2.设置表单数据&图片

    import com.itextpdf.text.Image;
    import com.itextpdf.text.Rectangle;
    import com.itextpdf.text.pdf.*;
    
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.util.HashMap;
    
    public class PDFTest {
        public static void main(String[] args) throws Exception {
    
            // 模版文件
            String templateFilePath = "模版文件路径";
            // 保存PDF文件
            String pdfFilePath = "保存PDF文件路径";
            // 表单数据
            HashMap<String,String> data = new HashMap<>();
            data.put("amount","100000");
            data.put("month","24");
            data.put("begin_date","2020年4月7日");
            data.put("end_date","2022年4月6日");
            // 图片数据
            HashMap<String,String> imageData = new HashMap<>();
            imageData.put("sign","签名图片");
    
            // 根据PDF模版生成PDF文件
            createPDF(templateFilePath,data,imageData,true,pdfFilePath);
        }
    
        /**
         * 根据PDF模版生成PDF文件
         * @param templateFilePath PDF模版文件路径
         * @param data 表单数据
         * @param imageData 图片数据 VALUE为图片文件路径
         * @param formFlattening false:生成后的PDF文件表单域仍然可编辑 true:生成后的PDF文件表单域不可编辑
         * @param pdfFilePath 生成PDF的文件路径
         */
        private static void createPDF(String templateFilePath, HashMap<String,String> data, HashMap<String,String> imageData,
                                      boolean formFlattening, String pdfFilePath) throws Exception{
            PdfReader reader = null;
            ByteArrayOutputStream bos = null;
            PdfStamper pdfStamper = null;
            FileOutputStream fos = null;
            try{
                // 读取PDF模版文件
                reader = new PdfReader(templateFilePath);
                // 输出流
                bos = new ByteArrayOutputStream();
                // 构建PDF对象
                pdfStamper = new PdfStamper(reader, bos);
    
                // 获取表单数据
                AcroFields form = pdfStamper.getAcroFields();
    
                // 使用中文字体 使用 AcroFields填充值的不需要在程序中设置字体,在模板文件中设置字体为中文字体 Adobe 宋体 std L
                BaseFont bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
                form.addSubstitutionFont(bfChinese);
    
                // 表单赋值
                for(String key : data.keySet()){
                    form.setField(key,data.get(key));
                    // 也可以指定字体
                    form.setFieldProperty(key, "textfont", bfChinese, null);
                }
    
                // 添加图片
                if(null != imageData && imageData.size() > 0){
                    for(String key : imageData.keySet()){
                        int pageNo = form.getFieldPositions(key).get(0).page;
                        Rectangle signRect = form.getFieldPositions(key).get(0).position;
                        float x = signRect.getLeft();
                        float y = signRect.getBottom();
                        // 读图片
                        Image image = Image.getInstance(imageData.get(key));
                        // 获取操作的页面
                        PdfContentByte under = pdfStamper.getOverContent(pageNo);
                        // 根据域的大小缩放图片
                        image.scaleToFit(signRect.getWidth(), signRect.getHeight());
                        // 添加图片
                        image.setAbsolutePosition(x, y);
                        under.addImage(image);
                    }
                }
    
                // 如果为false那么生成的PDF文件还能编辑,一定要设为true
                pdfStamper.setFormFlattening(formFlattening);
                pdfStamper.close();
    
                // 保存文件
                fos = new FileOutputStream(pdfFilePath);
                fos.write(bos.toByteArray());
                fos.flush();
            }finally {
                if(null != fos){
                    try {fos.close(); }catch (Exception e){e.printStackTrace();}
                }
    
                if(null != bos){
                    try {bos.close(); }catch (Exception e){e.printStackTrace();}
                }
    
                if(null != reader){
                    try {reader.close(); }catch (Exception e){e.printStackTrace();}
                }
            }
        }
    }
    

    3.签名效果

    PDF模版文件

    生成PDF文件

    总结

    itext比docx使用方式更友好,通过PDF模版可以设置表单字体以及样式;

    docx好处在于不需要依赖第三方PDF编辑器,只需要使用word自带的书签功能,辅助程序定位

    两者原理均一样,需要约定KEY名称,便于程序定位填充数据

    异常定位

    itext报:javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V

    这个错误由引入了jaxen、xom、xstream引起的xml工厂多个实现导致,删除引入即可

     

    展开全文
  • 1、广义的电子签名是指任何数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据;而狭义的电子签名即使用PKI体系进行的数字签名; 2、数字证书是由权威公证的第三方认证机构(即CA,...

    1、广义的电子签名是指任何数据电文中以电子形式所含、所附用于识别签名人身份并表明签名人认可其中内容的数据;而狭义的电子签名即使用PKI体系进行的数字签名;

    2、数字证书是由权威公证的第三方认证机构(即CA,Certificate Authority)负责签发和管理的、个人或企业的网络数字身份证明。

    3、数字签名是电子签名的一种形式,是电子签名的子集。是用数字证书对电子文件签名后在电子文件上保留的签署结果,用以证明签署人的签署意愿。所以数字证书是数字签名的基础,数字签名是数字证书的一种应用结果。

    4、电子签章是电子签名的一种表现形式。一般来说,电子签章包含签字和盖章两种不同的表现形式,是电子签名的一种表现形式。它是用图像处理技术将电子签名操作转化为与纸质文件盖章操作相同的可视效果,同时利用电子签名技术保障电子信息的真实性和完整性以及签名人的不可否认性。

    由此我们可以知道, 电子签章实际上是一种“数字运算”,电子签章有效性鉴定只需通过鉴定数字证书完整性即可,相较于线下签字或盖章形式真伪鉴定不便等问题,电子签章模式能够提升快速验签,提升合同安全防范能力。

    5、电子印章是以先进的数字技术模拟传统实物印章。电子印章分为电子公章和电子名章,它是将公章或名章通过PKI技术进行加密,以数字认证存储介质方式,在电子文件中应用的电子版的印章。电子印章技术必须基于电子签名技术,电子印章所具备的优点除可视化这一点外,电子签名都已具有,且更简单。

     

    常提到的主要是以下三个:CA(证书颁发机构)、数字签名(使用的技术)、电子签章(展现形式)。

    展开全文
  • 电子签名怎么签才有效?

    万次阅读 2019-02-13 10:29:08
    第一次接触电子签名的企业或个人,往往不太清楚,电子签名怎么签才有效,电子签名的签署流程又是怎样的,第三方电子签名平台如何确保电子签名的法律效力。下面小编将在下文为您详细讲解。 电子合同的签署并不同于...

    第一次接触电子签名的企业或个人,往往不太清楚,电子签名怎么签才有效,电子签名的签署流程又是怎样的,第三方电子签名平台如何确保电子签名的法律效力。下面小编将在下文为您详细讲解。

    电子合同的签署并不同于纸质合同,不需要打印、也不需要手写签字盖章。虽然全流程线上操作,但其中涉及到的角色还是挺多的,要想使得电子签名有效,这些角色都发挥着不可忽视的重要作用。比如第三方电子签名平台与CA机构需对用户的身份进行认证,第三方电子签名平台还需提供可靠的电子签名技术,来确保电子签名的有效性。最后,第三方电子签名平台还需提供存证出证服务、网络仲裁等法律服务来满足用户在电子合同在存储、合同纠纷方面的各种需求。

    电子签名怎么签才有效?
    下面我们就来一起看一下电子签名怎么签才有效?
    1、确认签署人的真实身份
    ①第三方电子签名平台进行实名认证
    用户注册平台帐号后,平台会要求用户进行实名认证,认证通过后方可进行电子合同签署。实名认证时,个人用户需要提交个人身份信息,企业用户需要提交工商信息。第三方电子签名平台会接入公安部的个人身份认证系统和工商总局的企业信息系统,从而对用户身份信息进行查验,确保用户的身份不会被冒充。在个人认证环节,法大大电子签名平台可提供微信、支付宝刷脸认证方式,帮助用户快速完整身份验证。而企业用户认证,因为涉及的信息较多,法大大将会通过企业对公账户打款信息核查,来确认企业身份的真实性。

    ②CA机构颁发数字证书
    CA机构即证书授权中心,是电子商务交易中受信任的第三方。当用户通过第三方电子签名平台的实名认证后,就可获得第三方电子签名平台合作的CA机构所颁发的数字证书,作为该用户网上身份证明的依据。并且该证书以数字签名技术为核心,使得证书不被伪造、不被篡改。

    2.创建专属电子签名
    通过实名认证后,用户就可以开始创建自己专属的电子签名了,这个电子签名会以数据电文的形式保存在第三方电子签名平台。个人用户,可在法大大电子签名平台设置手写签名,也可以使用系统生成的电子签名。企业用户可上传制作企业电子签章,在签署电子合同时,可选择相应的签章进行签署。该电子签名相当于纸质合同中的手写签名或者公章,是具有法律效力的。

    △设置个人手写签名
    △制作企业电子签章

    3.签署及管理电子合同
    当我们需要签署一份电子合同时,电子签名怎么签呢?其实很简单,只需要上传编辑好的合同文档,设置相应的签署方与签署顺序等标准后,就可以在电子合同上添加自己的电子签名和签署日期,即可完成己方签署。然后对方将收到短信提醒,并同样经过实名认证-电子签名过程后,一份电子合同即签署完成了。经过第三方电子签名平台,采用可靠的电子签名签订的电子合同才是具有法律效力的。

    用户通过法大大电子签名平台签署电子合同时可通过短信验证码、指纹、刷脸等方式签署。同时,电子合同签署完成后,将存储在电子合同平台云端,用户随时随地都可以登录法大大平台,对电子合同进行分类、查找、查阅及下载等管理操作。最后,用户也可以通过法大大平台的“合同查验”和“合同验签”服务对电子合同的签署信息、有效性进行检验,查看其是否被篡改过。

    4.第三方电子签名平台的其他服务
    除了实名认证、电子签名制作、电子合同签署、电子合同管理之外,法大大电子签名平台还会提供许多其他服务,如出证报告、司法鉴定、网络仲裁、法律咨询等法律服务。一旦用户产生合同纠纷,即可申请法大大相应的服务,高效解决合同纠纷问题。

    法大大是国内领先的第三方电子合同平台,主要为用户提供电子合同、电子文件签署及存证服务,同时整合提供司法鉴定和律师服务等增值服务。因其便捷、安全、合规的特性,目前法大大的产品和服务已被阿里巴巴、微软(中国)、百度、海尔、霍尼韦尔、支付宝、滴滴、美团、携程、同程旅游、人人车、蔚来汽车、小红书、保利地产、蛋壳公寓、拍拍贷、众安保险、阳光保险、新东方、龙湖地产、红星美凯龙、吉利石油等众多知名平台和公司所采用。

    看完以上内容,你知道电子签名怎么签才有效了吗?

    展开全文
  • 如图所示:前端实现H5+canvas手写板电子签名: <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-...
  • Vue Canvas 实现电子签名 手写板

    千次阅读 2019-08-15 16:48:24
    最近再做移动端电子签名,Vue+Canvas实现,移动端、PC端均可,也可以从github下载 。 我在做这个功能的时候参考了 这个代码,但是在移动端光标与实际划线有偏移,我在我的代码中修正了这个问题。 代码 <template...
  • Word 电子签名简单制作方法

    万次阅读 2020-05-19 14:51:59
    如何在 Word 里放置电子签名?手机拍一张签字的照片,插入 Word 后调整一下就可以,方法步骤如下 以名字 张三 为例,拍下照片插入 Word 中 可以发现纸张背景不是纯白色,无法达到电子签名的效果,需要调整 双击图片...
  • H5实现手写电子签名

    千次阅读 2019-05-23 15:56:17
    最近的一个项目有关于用户电子合同签名的问题,话不多说直接上代码 <template> <div class="page-content"> <mf1-header title="用户需求签名"> <mf1-button slot="right" @tap=...
  • 图片或手写签名电子签名教程

    千次阅读 2021-03-30 14:41:23
    1、在白纸上写上名字,用手机(或扫描仪)拍照传至电脑上 2、利用Windows的图像编辑器(mspaint)将图片编辑转换...5、用cad打开dxf文件,大功告成,怎么样转换的签名矢量图很完美吧,填充一下就可以使用了 ...
  • 伴随着2018年《互联网诊疗管理办法(试行)》出台,互联网医院开始全面普及,电子处方、电子病历也逐渐...1、电子处方应符合卫计部门相关规定,处方上应有医生电子签名; 2、处方开具后,处方药销售人员应经执业药...
  • 公司的业务表格登记需要使用上签名,所以做了一个电子签名的模块,网上看了很多相关资料,我选择使用jq 里面带有的签名功能,使用jq-signature.js来实现. 1.将jQuery和jq-signature.js文件 引入项目里面; ...
  • 移动端在开发的时候,可能会涉及到手写签名(电子签名)那些,在前端的思路是使用canvas 来签名,导出成图片进行保存。 仅供参考和学习。 vue版本:https://blog.csdn.net/qq_33270001/article/details/102855964 ...
  • 用PS制作电子签名方法总结

    千次阅读 2020-06-15 19:05:59
    PS制作电子签名的方法。
  • 最近说项目可能会用到一个电子签名,不需要识别的那种,只是一个单纯手写签名,然后以base64的格式提供给前端web页面。其实挺简单的,自定义一个手写view就上线了。Android 电子签名,手写签名案列实现方法! 先上...
  • web页面-电子签名

    2020-08-13 11:37:33
    <canvas id="canvas" style="border:none ;...重新签名</div> <div class="saveBtn" ng-click="saveDrew()">确认签订</div> angularjs 框架 - js var lastX, lastY; var canvasW =
  • ps:因公司推崇线上信息办公化 设计到客户签名 将客户签好的名字上传到服务器 因此 写了一个demo 废话不多哔哔 上效果图: 这里我运用的是自定义view //权限 <uses-permission android:name="android.permission...
  • html5实现电子签名并下载

    万次阅读 2018-01-19 16:11:32
    电子签名截屏 <!--<link rel="stylesheet" href="css/style.css">--> .canvasDiv { width: 800px; height: 500px; border: 1px solid gray; } #editing_area { width: 800px; height: 500px; border: ...
  • pdf.js不显示电子签名

    2020-08-21 14:04:18
    pdf.js默认不显示电子签章(数字签名)问题解决 项目开发中遇到需要将PDF文件进行电子签名并显示的需求,使用得是PDF.js的js插件进行的渲染,前面都没有遇到问题,就是在签名后显示上面一直不显示。后来才知道是因为...
  • vue中实现电子签名

    2020-09-06 09:25:23
    默认值 color 签名的颜色 ‘#333333’ lineWidth 签名的线宽 4 bgColor 签名的背景颜色 -1 pen 签名的笔类型可选择的值:‘default’ ‘writing’ ‘default’ writingMaxLine 当笔是writing的时候我们来设置最大...
  • 我们在日常办公时,会经常对PDF文件进行签名操作,那么如何更快更高效的添加手写签名呢? 方法一: 在WPS2019中打开一个需要... 想要创建一个原笔迹手写签名,电脑需要连接一个电子签名板,这里用到绘王HST640签名...
  • 电子邮件是一种很棒的媒介。 它直接进入收件箱,并且据报道,它的投资回报率高达4000%。 它也永远被误解,并且常常做得不好。 随着最近智能手机的爆炸式增长,我们越来越经常在iPhone或Galaxy上阅读邮件,但不幸的...
  • 电子签名的c#实现方法

    千次阅读 2014-05-14 12:14:51
    http://www.cnblogs.com/aipeli/articles/524406.html 电子签名的c#实现方法
  • 通过自定义view实现屏幕手写签名效果,可以上一步,清空,可以保存签名为图片格式到本地。 效果: 思路其实很简单,肯定是自定义一个控件,然后在里面动态获取用户的触屏滑动的点的坐标并保存下来,一开始
  • 如何直接在电子文档上签名

    万次阅读 2018-12-26 14:54:11
    在日常的办公学习中,我们经常要接触到PDF文档,特别是当我们需要对一份电子档进行签名时,很多时候操作都是把文件打印出来,签名后再扫描成电子档,这样做实在太麻烦了,有没有更加简便的方法呢? 如下小编教大家一...
  • 电子签名功能-微信小程序

    千次阅读 2020-07-27 11:30:18
    微信小程序-电子签名 // XXXX.wxml <view class="signName"> <canvas class="canvas" id="canvas" canvas-id="canvas" disable-scroll="true" bindtouchstart="canvasStart" bindtouchmove="canvasMove" ...
  • 如何对pdf电子文档进行手写签名

    万次阅读 2016-05-26 18:20:34
    在某些情况下,我们可能需要对某一份电子pdf文档进行手写签名,通常的做法是将文档打印出来,签好名字后再扫描回去,费时费力费费金钱,略显麻烦。事实上,我们用Adobe Acrobat就可以签名了。这里不建议使用Adobe ...
  • C#下对PDF文件进行电子图片签名

    千次阅读 2018-02-07 11:40:49
    能够对pdf进行图片签名的,网上找来找去,就一个iText是免费的,但这个免费是AGPL协议,当然它也有商业协议,iText现在有5和7两个版本,这里我采用的是版本5,nuget下载地址为:...然后为了多做比较,我这里还找了Spire...
  • Java实现对png图片文件电子签名操作

    千次阅读 2018-08-04 10:47:22
    * 根据图片像素位置添加用户电子签名 * @param imagePath 要操作的图片路径 * @param signImagePath 电子签名图片路径 * @param outImagePath 合成后输出图片路径 * @param width 像素位宽度  * @param height...
  • vue在移动端实现电子签名手写板

    千次阅读 2019-05-30 16:10:36
    因项目需求需要实现电子签名,记录手绘笔迹并保存为base64图片(因是移动端项目,在浏览器调试的时候必须打开移动设备模式,否则绘制不了) <template> <div> <div class="signature"> <div...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,834
精华内容 11,933
关键字:

如何设置电子版签名