最新生成签章方案,添加了椭圆公章和下弦文,用起来更简单粗暴
最新项目地址:https://github.com/niezhiliang/signature-utils
最近公司在做电子合同的项目,需要用到生成企业公章图片这方面的东西,然后我就负责了这块的东西,开始在网上到处找资料,不久就把生成公章的图片搞出来了,在本地测试没有任何问题,发到服务器上问题就各种出现啦。
1.下面是第一个问题:
/alidata/server/java-1.8/jre/lib/i386/libfontmanager.so: libgcc_s.so.1: 无法打开共享对象文件: 没有那个文件或目录
当时出现就傻眼了,以为代码哪里错了,后面网上找找才找到答案是:
在debian下安装lib32gcc1包,问题解决。问题原因是,一般os安装的是64位的,所以缺省是装libgcc这个包。但java一般还是会用32位的包,因此就会存在上面的问题(系统提供的libgcc_s.so.1是64位的,不是java启动需要的32位的),安装一个32位的就好了。
解决代码:
在终端敲这行代码,把需要的安装包给下过来
sudo yum install libgcc.i686 --setopt=protected_multilib=false
有必要说明一下:如果你的服务器之前就装了libgcc.x86_64 的话,就会报一个
Multilib version problems found. This often means that the root
cause is something else and multilib version checking is just
pointing out that there is a problem.
这个是原因是因为多个库不能共存,不过更新的话也并不行,但是可以在安装命令后面加上
--setopt=protected_multilib=false
下完以后,重启java项目,你会发现不再报之前的那个错误啦,而且图片也给你生成了,然而问题又出现啦。
2.第二个问题
是公章上面的字全给你换成了框框
然后又在网上找资料,知道我们生产签章使用的字体是宋体,然而服务器并不支持这个字体,所以就给你用框框代替啦。
解决方法就是给服务器添加这个字体:这里就直接把被人的博客直接端过来了
1)查找Windows系统(本地)的文字包
查找路劲C:\Windows\Fonts
本地是一个ttc文件,我们需要修改文件后缀,改为ttf。
(2)将ttf文件导入到linux系统java的fonts包中。
注:路径是你Linux系统java安装的文件,根据你的安装目录查询
注意:查看java的安装路径方法:
<span style="color:#333333">which java</span>
我的字体路径是:/alidata/server/java/jre/lib/fonts
(3)重启java或者tomcat生效
最后效果图:
贴上生产签章部分的代码吧:https://github.com/niezhiliang/signature-utils