java 电子签章_PDF开发+电子签章,如何实现真正地脱离硬件的无纸化办公体验(实战篇)?...

上一篇中我们主要介绍了PDF的一些基本格式,让大家入门有一个初步的了解,接下来我们进行PDF的开发和电子签章的实战。

【PDF文档修改】

上篇文章中了解了PDF的基本格式,我们要实现无纸化办公,势必要修改现有的PDF文档,往里面填写具体的数据。那如果我们要对去解析修改PDF的具体内容,那只有上面的基本了解,是远远不够的,就算借助第三方开发包要去解析修改,也是一个庞大复杂的工程。那我们怎么样可以最方便快捷的实现对PDF文档的修改呢?

这里我们可以借助PDF自身的特性,因为它是由很多对象组成的结构化的格式,所以我们不需要去解析现有的数据内容,只要往里面增加一个新的数据对象就可以,至于排版描述信息,也是现成支持的可覆盖模式。简单的说就是增加一个对象,告诉它排版位置,来覆盖原来的内容就可以达到我们的目的。当然还是要借助开源的第三方开发包来实现,可以更加的方便,现在比较成功的开源免费的开发包有itext和PDFbox,基本功能大概都可以实现,这里我们选取itext来使用和说明。

Itext有java和C#版,本文档说明都使用java版,以下用到的功能已经在研发中心的SDK中都已实现,包括java和C#版的。

根据上面的思路,我们会碰到和需要解决的几个问题如下:

1、找到区域先覆盖白色背景色

java 电子签章_PDF开发+电子签章,如何实现真正地脱离硬件的无纸化办公体验(实战篇)?..._第1张图片

为了让我们的修改不至于和原来的内容一起显示出来,造成混杂难看的效果,所以我们在覆盖新内容之前,先对修改区域内做一层白色背景色的覆盖,以确保我们填充的内容可以正常清晰的显示。

那如何简单方便的可视化的确定我们要填充覆盖的区域。最简单的方法就是我们打开现有的PDF文件,在里面直接用光标画出我们要修改填充的区域,这里涉及到屏幕视图坐标和PDF的自己的坐标系之间的转换问题需要解决。pdf页面的位置坐标,一般原点为pdf页面左下角,水平为x轴,高度为y轴,所以在屏幕上选取区域得到的坐标和PDF修改使用的坐标之间需要做对应的转换。当然在这之前,我们要先确定要修改的页码是第几页。

2、填充手写签名图片或者文字内容

新建一个段落Paragraph,往Paragraph里面设置手写签名图片,或者文字内容,再设置相应的边

你可能感兴趣的:(java,电子签章)