Skip to content

2023年11月,项目立项。为解决快速将Word文件导入到网页中,故制作了此插件。插件目前不仅支持RTF文本导入快速粘贴,还支持编译器、文本编辑器、txt默认文本导入等,简化开发

Notifications You must be signed in to change notification settings

lhqm/fox-clipbord-helper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 

Repository files navigation

本地粘贴控件说明

项目灵感来源

项目起源于一个实际需求,在线编辑器中,需要实现一个粘贴控件,可以将用户复制的Word文档内容直接插入到编辑器中。 但是由于前端读取不了Word文档中的图片,因为RTF格式的图片数据是这样的:file://C:\xxx\roming\example.jpg 而且,这些XHTML数据往往dom规模很大,前端承受不住......

于是乎,一个伟大的想法诞生了,它最开始叫做本地化服务器解决方案。 但是问题来了,我并不会cpp,更别提qt了,怎么去实现呢?

框架选型与思路

Java原生无疑是极好的。问题就在于,如何把信息传给前端呢。我们很容易想到用mvc框架! 关键是spring mvc,它太大了,还拖家带口的......

于是乎,我选择了这样一款小巧的框架:spark 需要注意的是,此spark非彼spark,或许你搜索一下spark mvc,浩如烟海的搜索内容中,还残存着它一丝身影。 生态还蛮齐全的,而且不拖家带口,包体小到1M都没有......这简直是求之不得的mvc最优解决方案。

dom规模优化

接下来,既然我们已经可以和前端通信了,那么我们肯定要送佛送到西,顺带把拿出来的dom规模优化一下。 这一部分详见代码咯!

项目启动

编译器里直接运行main方法即可。

项目打包

一定要把依赖打进去!没有使用spring以后,最容易犯这个毛病,详细看pom文件配置

项目进一步打包为exe

这一步参考使用exe4j,跟着走就行。需要注意的是,本项目没有界面,那么到选择项目类型的时候一定要注意, 选择桌面程序而不是Java服务,前者可以巧妙地通过没有窗口输出骗过操作系统,直接窗口显示错误,程序静默报错 但是不会退出,用户根本感知不到。后者会有一个命令行黑框,退出之后服务跟着退出,一定不要选错。

项目打包为可执行程序和加密

这一块自行解决,网上有签名相关解决方案。 我这边使用的是inno setup,相关步骤指示如下:

  1. 编写iss脚本
  2. 配置签名工具(需要先自签名一套pvk,或者去网上买好)
  3. 运行脚本进行联合签名
  4. 如果是自签名证书,请先安装自签名证书到Windows根证书目录下,并设置可信任,以使得项目可以正常写入注册表和开机自启动
  5. 安装程序
  6. 随便复制一段RTF文本,访问http://127.0.0.1:10086/clip

自写协议配置页面上打开

这一步在上述打包的时候完成,在脚本内写入协议即可。

项目迭代

前端在使用时通过判断剪切板文本是否是正常文本,不正常就访问接口就行了,去拿rtf格式文本 v1.1版本 前端反映如果在JB系列编译器里边复制,会绕过前端校验访问,但是又不是rtf格式文本,我在插件里边修复了这个问题,并且新增了复制控制台数据的能力。

About

2023年11月,项目立项。为解决快速将Word文件导入到网页中,故制作了此插件。插件目前不仅支持RTF文本导入快速粘贴,还支持编译器、文本编辑器、txt默认文本导入等,简化开发

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages