VSTO | C#快速开发电子签章插件

hello,大家好,我是@似最初

前期通过VB我曾经开发了一个公文排版插件,里面有一个插入电子签章的功能,有人就问这个电子签章能够单独拎出来吗?答案当然是可以的,所以今天采用C#重新简单的重构了该功能,相信只要简单修改一下,绝对满足一些小企业的需要了。

第一步:创建窗体(VSTO开发创建省略)

新建一个窗体,并在窗体上面添加一个用于显示图片的picturebox及分别设置签章和插入签章的button按钮,并根据自身需求修改窗体,如下图所示:

添加openFileDialog1 用于选择图片文件(也可以把签章内置于资源当中调用)。

第二步:引用命名空间

using System;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word; //using·word

在设置中添加字段,用于记录签章地址,如果选择内置签章,可以不用设置。

第三步:核心代码

关键代码:设置签章
 private void button1_Click(object sender, EventArgs e)
        {
                
            DialogResult dr = openFileDialog1.ShowDialog(); //选择文件
            string fileName = openFileDialog1.FileName;   //获取所打开文件的文件名,如果是多个文件选择FileNames
            Properties.Settings.Default.qzimg = fileName;
            Properties.Settings.Default.Save(); //保存自定义
            string qzimg = Properties.Settings.Default.qzimg; //实例化图片代码
            if (dr == System.Windows.Forms.DialogResult.OK && !string.IsNullOrEmpty(qzimg))
            {
                pictureBox1.Image= Image.FromFile(qzimg);
                     
            }
            else
            {
                MessageBox.Show("您未选择图片","温馨提示");
                pictureBox1.Image = null; //如果未选择图片则清空图片
            }


        }
        
关键代码:插入签章
  private void button2_Click(object sender, EventArgs e)
        {
            string qzimg = Properties.Settings.Default.qzimg;//实例化签章链接
           if (File.Exists(qzimg))
            {
                Word.Selection sel = Globals.ThisAddIn.Application.Selection; //实例化选择按钮
                Word.InlineShape shape = sel.InlineShapes.AddPicture(qzimg); //插入图片并转为形状
                shape.Width = 100f;//图片宽度
                shape.Height = 100f;//图片高度
                shape.ConvertToShape().WrapFormat.Type = Word.WdWrapType.wdWrapSquare;//四周环绕的方式
                shape.Select();//选中图片
                this.Close();
            }else
            {
                MessageBox.Show("签章未加载成功", "温馨提示");
            }

        }
关键代码:启动窗口时加载签章
  private void Form1_Load(object sender, EventArgs e)
        {
            string qzimg=Properties.Settings.Default.qzimg;
            if (File.Exists(qzimg))
            {
                pictureBox1.Image = Image.FromFile(qzimg);
            }else
            {
                MessageBox.Show("签章加载失败,请重新设置签章","温馨提示");
                pictureBox1.Image = Image.FromFile(""); //可以设置一个未加载时的图片
            }
          

        }

最终效果

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值