C#开发word(wps)插件(com加载项)作为一个web前端开发,不搞点后端的东西玩玩也说不过去。除了常见的node

关于word(wps)插件,要实现的最终效果,无非如下两种:

因为这些基于microsoftoffice的上做的二次开发,必须要基于window系统,参考我微软的技术栈开发。微软的技术主要的无非两种:

两者无所谓好坏,但我个人对vb不太感冒,而且气语法跟java的有点点差异的,因此技术选型选择C#。

建议安装完MicrosoftVisualStudio后以管理员身份运行启动

选中解决方案下的项目---【右键】---【属性】,开始如下设置:

【生成】---勾选【为com互操作注册】

【调试】---选中【启动外部程序】---选择wps安装路径

我这里是wps文字,因此选中后的完成路径是:

C:\ProgramFiles(x86)\Kingsoft\WPSOffice\10.8.0.6370\office6\wps.exe

如果你们是基于wps表格

C:\ProgramFiles(x86)\Kingsoft\WPSOffice\10.8.0.6370\office6\et.exe

wpsppt的话

C:\ProgramFiles(x86)\Kingsoft\WPSOffice\10.8.0.6370\office6\wpp.exe

【签名】--【新建签名】

图中的xx_officialDocument.pfx就是此处下拉框选则【新建】后当场生成的。

至此,新建项目完毕,

UpgradeWPSOffice3.0ObjectLibrary对应的是WPS文字、UpgradeWPSSpreadsheets3.0ObjectLibrary对应的是WPS表格。

提示:若添加后提示引用出错,可以尝试的解决方法有:

引用添加完毕后,我们可以看到我们总共依赖了哪些引用

在Properties上右键→添加→新建项→找到“资源文件”→输入或保持默认名称→添加

打开Resource1.resx后--【添加资源】---【添加新文本文件】---【输入MyRibbon】

这个MyRibbon.txt文件就是一个xml菜单文件,配置你在wps中的菜单的显示

双击MyRibbon.txt后进入编辑,输入如下文本

这里的主类,就是我们一开始把Class1.cs该成了OfficialDocument.cs这个文件。当然你可以命名为其他。

打开了OfficialDocument.cs:文件最上方就是我们引用的类,都写进来

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingAddInDesignerObjects;usingOffice;usingSystem.Windows.Forms;继续往下写

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingAddInDesignerObjects;usingOffice;usingSystem.Windows.Forms;//namespace[yourProjectName]视具体情况改成你的项目名namespaceyourProjectName{publicclassClass1:IDTExtensibility2,IRibbonExtensibility{{}}

有红色的波浪线,提示我们有错,不过没关系,鼠标悬浮在上面,点击黄色灯泡图标的下拉箭头---【实现接口】,visualstudio会自动实现其接口。IRibbonExtensibility这个也一样这么操作一下。

得到修复后的代码如下:

usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingAddInDesignerObjects;usingOffice;usingSystem.Windows.Forms;usingSystem;namespaceyourProjectName{publicclassClass1:IDTExtensibility2,IRibbonExtensibility{publicvoidOnConnection(objectApplication,ext_ConnectModeConnectMode,objectAddInInst,refArraycustom){thrownewNotImplementedException();}publicvoidOnDisconnection(ext_DisconnectModeRemoveMode,refArraycustom){thrownewNotImplementedException();}publicvoidOnAddInsUpdate(refArraycustom){thrownewNotImplementedException();}publicvoidOnStartupComplete(refArraycustom){thrownewNotImplementedException();}publicvoidOnBeginShutdown(refArraycustom){thrownewNotImplementedException();}publicstringGetCustomUI(stringRibbonID){thrownewNotImplementedException();}}}在OnConnection事件中初始化app和wordDoc对象

publicclassClass1:IDTExtensibility2,IRibbonExtensibility{publicstaticWord.Applicationapp=null;publicstaticobjectwps;publicstaticWord.DocumentwordDoc;ObjectNothing=System.Reflection.Missing.Value;publicvoidOnConnection(objectApplication,ext_ConnectModeConnectMode,objectAddInInst,refArraycustom){wps=Application;app=wpsasWord.Application;wordDoc=app.Documents.Add(refNothing,refNothing,refNothing,refNothing);//wordDoc=app.ActiveDocument;wordDoc.PageSetup.PaperSize=Word.WdPaperSize.wdPaperA4;wordDoc.PageSetup.TopMargin=app.CentimetersToPoints(3.7f);//37mm,对应104.9磅(1磅约等于0.3572mm)wordDoc.PageSetup.BottomMargin=app.CentimetersToPoints(3.5f);wordDoc.PageSetup.LeftMargin=app.CentimetersToPoints(2.8f);wordDoc.PageSetup.RightMargin=app.CentimetersToPoints(2.7f);}...}在GetCustomUI事件中调用在Resource1.resx中添加的MyRibbon.txt,获取菜单配置文件

publicstringGetCustomUI(stringRibbonID){returnProperties.Resource1.MyRibbon;}添加事件试试。我们在MyRibbon.txt文件中的每一项按钮里面,都有一个onAction,这个就是绑定的事件。需要我们在Class1.cs文件中去实现

publicvoidreduceFontSpace(IRibbonControlctrl){MessageBox.Show("youclickreduceFontSpace")//floatformer=app.Selection.Font.Spacing;//app.Selection.Font.Spacing=former-0.3f;}

提示:MessageBox需要引用System.Windows.Forms。引用方法如下:

在第三部中,我们实现了一个自定义的菜单,并期望其加到wps的菜单栏中,具体展示结果如下

怎么样才能展示这个菜单呢?

在【开发工具】---【com加载项】选中我们的实现的com加载项(wps专业版才有【开发工具】这个菜单选项):

新增一个空的txt记事本文件→修改后缀名,另存为install.reg→右键此文件编辑→拷贝如下代码:

WindowsRegistryEditorVersion5.00[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\Zhjk.OfficialDocument]"FriendlyName"="Zhjk.OfficialDocument""Description"="【自定义中文描述方便他人理解】""LoadBehavior"=dword:00000003"CommandLineSafe"=dword:00000001[HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL]"Zhjk.OfficialDocument"=""需要注意的是:

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\Zhjk.OfficialDocument]这里[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins固定不变,后面的xxx1.xxx2,表示xxx1是你项目的名,xxx2是你cs入口文件的类名,本例中就是yourProjectName.Class1

以上,写入注册表信息install.reg文件完成。

但是,如果你想清理掉这个注册表信息,你可以手动在命令行输入regedt,打开操作界面,你也可以专门生成一个unistall.reg文件,双击实行即可。unistall.reg内容如下:

WindowsRegistryEditorVersion5.00[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\Zhjk.OfficialDocument][HKEY_CURRENT_USER\Software\Kingsoft\Office\WPS\AddinsWL]"Zhjk.OfficialDocument"=-注意减号(横杠)“-”,还有xxx1.xxx2(本例子中是Zhjk.OfficialDocument)要与你安装的install.reg里面的保持一致。若开发的是WPS文字、WPS表格的外接程序,则注册路径中HKEY_CURRENT_USER\SOFTWARE\Microsoft后面:WPS文字对应的是Word和WPS;WPS表格对应的是Excel和ET

某些电脑可能要用管理权权限来运行这个reg文件

命令行输入regedit

沿着这个HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins路径一直打开目录,如果看到如下,即说明写入注册表成功

之前做了那么多准备工作,现在可以启动调试,看看我们的wps文字到底有没有按照预定的情况加载自定义菜单。打开visualstudio界面,在degug模式下,点击启动按钮:

然后自动自动wps文字(如果此前你打开了wps文字应用,或者word,请先关掉)

看到此界面,说明我们的自定义com加载项本地调试成功。

部署之前,我们要先对我们的dll签名,保证系统信任此文件

Office.dllVBIDE.dllWord.dll

后面我们需要这三个dll。

若用户是WPS专业版则不需要,为了兼容性,推荐进行强签名。另外,如果项目中引用了第三方未签名的dll,则必须进行强签名才能引用。

ildasmWord.dll/out:Word.ililasm/dll/res:Word.res/key:zhjk.pfxWord.il/out:Word.dll

可以看到强签名后的文件如下:

Word.dll、Office.dll这两个强签名的,就是我们后面需要的文件。

在此前的步骤中,我们拿到了强签名的dll和Release模式下应用生曾的dll,

Zhjk.dllZhjk.pdbZhjk.tlbWord.dllOffice.dll现在开始对window系统进行操作了。

这个文件夹路径

C:\ProgramFiles(x86)\MicrosoftSDKs\Windows\v10.0A\bin

你可以在命令行,一行行输入命令来实现。这里我们推荐用批处理命令。把所有的命令都放在一个xxx.bat文件里。

这里我们的在当前Release目录下新增一个install.bat,里面内容如下:

@echooff@setbaseDir=%~dp0regedit/s%baseDir%\reg\Zhjk.OfficialDocument.regC:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm%baseDir%\Zhjk.dll/tlb:%baseDir%\Zhjk.tlb@SETGACUTIL="%baseDir%\NETFX4.8Tools\gacutil.exe"%GACUTIL%-i%baseDir%\Zhjk.dll%GACUTIL%-i%baseDir%\Word.dll%GACUTIL%-i%baseDir%\Office.dllpause同样,再建一个卸载的bat批处理命令文件uninstall.bat:

@echooff@setbaseDir=%~dp0Echo1.从缓存中移除程序集@SETGACUTIL="%baseDir%\NETFX4.8Tools\gacutil.exe"rd/s/QC:\Windows\Microsoft.NET\assembly\GAC_MSIL\Zhjkrd/s/QC:\Windows\Microsoft.NET\assembly\GAC_MSIL\Wordrd/s/QC:\Windows\Microsoft.NET\assembly\GAC_MSIL\OfficeEcho2.注销类型C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm/u%baseDir%\Zhjk.dll/tlb:%baseDir%\Zhjk.tlbEcho.Echo3.清除注册表regedit/s%baseDir%\reg\Zhjk.OfficialDocument-delete.regpause%~dp0是bat文件当前文件夹路径;RegAsm是程序集注册工具,需要用户先安装Microsoft.NetFramework4.0;gacutil.exe是全局程序集缓存工具,用户电脑一般没有,所以需要我们将NETFX4.8Tools文件夹附带在安装包里

THE END
1.word签名怎么手写word签名手写方法教程word签名我们是可以进行手写的,我们只需要在插入界面找到形状,然后点击自由线条,我们就可以使用鼠标或者是笔在上面写出自己的大名了。 1、首先我们点击“ 插入 ”。 2、然后点击“ 形状 ”。 3、随后我们选择“ 自由线条 ”。 4、最后就可以看到自己的前面了。http://product.pconline.com.cn/itbk/software/bgrjjc/1640/16409142.html
2.Word文档如何才可以手写签名Word文档如何才可以手写签名 在白纸上写下签名用手机拍下并保存至电脑,鼠标右键新建Word文档,进入该文档,点击【插入】,选择【图片】,找到手写签名照片并【打开】,单击【文字环绕】,选择【浮于文字上方】,调整照片大小位置,最后【保存】即可。 推荐度: 点击下载本文 文档为doc格式 导读在白纸上写下签名用手机拍下https://m.51dongshi.com/ezdsreeasrc.html
3.word如何提取签名?一、word如何提取签名? 如果你想要在Word文档中提取签名,你可以按照以下几个简单的步骤来操作: 1. 鼠标点击签名处:找到Word文档中的签名所在位置,点击该位置。 2. 选择签名图像:将鼠标拖动到签名图像上,直到该图片被选中。 3. 右击鼠标:点击鼠标右键,弹出设置选项。 https://tool.a5.cn/article/show/50994.html
4.word电子签名怎么做?哪个软件的电子签名较好?只需要打开要签名的PDF文档,然后选择“电子签名”工具,就可以开始签名了。用户可以使用鼠标或触摸屏在文档上绘制签名,也可以导入已经创建好的签名文件进行签名。此外,福昕编辑器个人版还支持多种签名方式,包括手写签名、数字签名和图片签名等。 通过以上“word电子签名怎么做”内容可知,电子签名是一种方便快捷的签名方式https://www.foxitsoftware.cn/pdfbianji/jiaocheng/6018.html
5.利用数字签名保护Word文档的方法word办公软件软件教程用数字签名保护文档 数字证书导入系统后,就可以随时用来对文档进行保护了。在Word中,单击“文件→保护文档→添加数字签名”,进入文档保护。需要注意的是,由于系统可能存在多个数字证书,一定要选择自己申请的数字证书(图6)。单击签名后,出现签名完成的确认界面(图7)。此时,该文档就包含进数字签名了,将不再允许编辑操作https://www.jb51.net/office/word/339440.html
6.word应该咋样才能制作电子签名首先可以先在别的设备上手写出自己的签名,然后处理成图片的格式传送到电脑上; 接着打开word,在上方的工具栏中,找到并且点击【插入】,然后点击【图片】,在弹出来的选项中,点击【本地图片】; 然后在电脑中找到自己的签名照片,选中后点击【打开】,接着调整一下插入图片的大小和位置,这样有电子签名的word文档就制作好http://m.how234.com/eymnhrhsfd.html
7.怎么在word上手写签名在传统的 Microsoft Word 软件中,是无法直接手写签名的。不过,可以借助一些其他工具来实现在 Word 上手写签名,以下是其中几种常见的方法: 1. 使用手写板或触控笔:如果您使用具备触摸功能的设备,如平板电脑、触控笔等,可以在 Word 文档中直接使用手写板或触控笔进行手写签名。这样可以模拟真实的签名效果。 https://www.dongrv.com/jizhangbaoshui/2023080999846.html
8.怎么在Word文档上加签名3d溜溜设计问答平台为广大设计师们提供各种怎么在Word文档上加签名问题解答,3d溜溜素材问答平台汇聚全球各地的设计师、名师名司、设计爱好者等设计灵感和经验,迅速为您解决怎么在Word文档上加签名的困惑。https://www.3d66.com/answers_relation/relation_3702653.html
9.Word文档“电子版手写签名”,手把手教你!Excel高效应用Word文档“电子版手写签名”,手把手教你! 回复2016获得office2016的下载链接 回复2021获得office2021的安装攻略 (欢迎转发扩散、留言互动和点一下“在看”!) 我们经常在签约一些合同时,都需要手写签名,但如果有大量合同需要签约,每一份都去手写签名,那还不知道要写到什么时候去。https://www.shangyexinzhi.com/article/20513010.html
10.word怎么手写签名如何关闭审批手写签名钉钉帮助中心为您提供word怎么手写签名相关问题的回答,更多word怎么手写签名问题相关解答可以注册咨询钉钉人工客服。https://www.dingtalk.com/qidian/help-keyword-108534.html
11.word的电子签名,怎么生成电子签名– 使用手写笔:使用特殊的手写输入设备,您可以在屏幕上写出自己的签名,电脑会将您的手写签名转化为可被认可的电子签名。 – 使用图片:如果您想要有一个比较个性的签名,可以使用图片制作一个电子签名,选择自己喜欢的图片、文字,并上传到Word,就可以生成一个有趣且能代表自己的电子签名。 https://www.hwtop.com/tuozhan/2825.html
12.WORD2003电子签名插件(支持手写签章)51CTO博客可以完成手写签名及插入签章的功能。插入签名或签章后,可以监控WORD文档是否被修改。软件的使用界面很简单,只是在WORD里插入了一个工具栏,上面有三个按钮。其它的功能在插入的签名或签章上按右键根据弹出菜单选择执行。 印章支持多种格式图片,如BMP,JPG,GIF(静止的)等,使用时用印章管理工具把这些导入到印章库即可。 https://blog.51cto.com/u_15127630/4190371
13.如何给word文档简历创建电子签名在Word文档简历中创建电子签名的步骤如下: 方法一:使用签名行功能 选择“插入”选项卡,单击“签名行”下拉列表中的“Microsoft Office签名行”命令。 打开“签名设置”对话框,在“建议的签名人”的文本中输入签署人的姓名,在“建议的签名人职务”文本框中输入签署人的职务,勾选“在签名行中显示签署日期”复选框,https://www.jianli.com/article/gwekxw.html
14.如何利用数字证书签名保护Word文档或PDF文档不被非授权修改或非法在中国境内,您可以通过万维景盛购买SSL数字证书,来给WORD文档或者PDF文档进行数字签名,个人证书价格低至198元/年,企业版文档签名证书价格低至680元/年,不限签名次数,不限签名个数。客服可以免费为您提供文档签名远程指导。 使用数字签名保护文档 数字证书导入系统后,可随时用于文档保护。 在Word中点击“文件→保护文档https://www.wanweiwang.cn/FAQ/view/1179.html
15.word中插入电子版手写签名方法博客一度好3、打开需要插入手写签名的word文档 4、鼠标定位到手写签名的地方 5、在word文档顶部,点击“插入”,选择“图片”,找到你的手写签名图片,插入进来 6、并将手写签名调整到合适大小 7、右击手写签名图片,选择“文字环绕”,再选择“衬于文字下方” 8、根据实际情况,可以把“学生签字:”这几个字往左移动一下下 https://www.yiduhao.com/index/news/news_detail/id/137.html
16.插入签名Microsoft 365 专属 WordMicrosoft 365 Mac 版专属 WordWord 2024Word 2024 for MacWord 2021Word 2021 for MacWord 2019Word 2016 WindowsmacOS 手写签名可让你的文档具有个人风格。 你可以扫描你的签名并将其存储为图片,以便插入文档中。 您也可以插入签名行来指示签名位置。 https://support.office.com/article/f3b3f74c-2355-4d53-be89-ae9c50022730
17.word怎么电子签名(word里电子签名怎么弄)电子合同在第三方电子签名平台法大大注册账号,通过实名认证后,即可免费生成电子签名,也可以上传手写签名;然后在【签署】页面上传需要电子签名的word文件,打开后将左侧的电子签名拖拽至签署位置,这样就完成word电子签名了。 以上就是「word怎么电子签名」全部介绍,不难看出,在word里电子签名用法大大平台操作更简单,而且还能保障其https://m.fadada.com/notice/detail-10564.html
18.牢记!最权威的党政机关公文格式国家标准(含式样)当公文排版后所剩空白处不能容下印章或签发人签名章、成文日期时,可以采取调整行距、字距的措施解决。 7.3.6 附注 如有附注,居左空二字加圆括号编排在成文日期下一行。 7.3.7 附件 附件应当另面编排,并在版记之前,与公文正文一起装订。"附件"二字及附件顺序号用3号黑https://www.ankang.gov.cn/WapContent-2060365.html
19.word数字签名有什么用?word数字签名保护文档方法步骤不可否认--word数字签名有助于向所有方证明签署内容的有效性。“否认”指签名人否认任何与签署内容有关系的行为。 为了确保以上各项,必须由内容创建者使用满足下列条件的签名对内容进行数字签名:该word数字签名有效 (有效:一种证书状态,根据证书颁发机构的数据库对证书进行检查后发现它是合法的、最新的,而且没有过期或https://www.wgj7.com/cjwt/36631.html
20.word电子签名怎么做word电子签名怎么弄透明修改完成后,再插入一个红色的五角星,就完成了电子印章的制作。 图片13:示例效果 四、小结 以上便是word电子签名怎么做,word电子签名怎么弄透明的相关内容。通过word不仅可以制作电子签名,也可以制作电子签章,既方便又快捷。希望能帮到您解决问题,如果还有问题的可以移步Microsoft 365中文网获取解决方案。https://www.officesoftcn.com/word/office-uaidzqm.html
21.如何在Word中轻松实现手写签名下载并安装手写签名软件(如Adobe Acrobat或相关应用程序)。 在软件中创建手写签名并保存。 打开Word文档,选择“插入”菜单,点击“图片”。 插入刚刚保存的手写签名,并调整位置与大小。 通过以上几种简单的方法,你就可以在Word文档中轻松添加手写签名,让你的文件更具个人特色。不妨试试看,也许你会发现更多独特的方式https://bbs.wps.cn/cms/l2OjoiOd.html