基于JavaWeb的PDF安全编辑系统的设计与实现

更新时间:2023-07-31 07:29:43 阅读: 评论:0

基于JavaWeb的PDF安全编辑系统的设计与实现生蚝保存
胡荣磊;左珮良;蒋华
【摘 要】iText与PDFBox是用于处理PDF文档的开源工具包,本文采用JavaWeb技术中倡导的MVC开发模式,设计了PDF安全编辑系统,同时结合该类工具包实现了包含创建、加密、读取文本内容、添加水印等在内的PDF文档的安全编辑功能,并支持批量操作.对此项目的功能进行测试表明,该编辑系统运行稳定,并对所操作的PDF文档对象具有较高的安全保护作用,项目易于移植和部署,具有一定的应用价值.
【期刊名称】《北京电子科技学院学报》
【年(卷),期】2015(023)002
【总页数】6页(P68-73)
【关键词】iText;PDFbox;JavaWeb;安全编辑;批量操作
【作 者】胡荣磊;左珮良;蒋华
【作者单位】北京电子科技学院,北京100070;北京电子科技学院,北京100070;北京电子科技学院,北京100070
【正文语种】中 文
【中图分类】TP309
引 言
PDF文档是目前国际上通用并得到普遍认可的版式文档,其版面呈现效果固定,在不同的软件、计算机等环境上不跑版,能够忠实的记录原作者的创作内容,因此该类文档在我国的企事业单位应用广泛。目前流行的PDF文档的处理软件主要为Adobe公司的 Acrobat以及Foxit公司的PDF Editor。Acrobat软件功能强大,几乎实现了PDF文件的所见即所得的编辑功能,其缺点为软件包安装复杂,且为付费软件。相比之下,Foxit PDF Editor作为国产软件其使用要求简单,基本可以满足用户的需求。以上两类PDF编辑软件着重于单个PDF的创建和处理功能,并不具有编辑系统的用户属性功能,也不支持对PDF文件的批量操作,本文就此目的进行初步的设计和实现。
潮州春饼
iText是一项免费的JAVA开源库,通过使用iText工具包能够生成PDF、RTF以及HTML等文件[1-3],其缺点是不能够读取PDF文件的内容。iText库支持对PDF文件的属性(包括文件名、主题、关键词、作者等)、页面大小方向、页眉页脚页码以及文件内容进行设置,在使用iTextAsian.jar的前提下,能够处理带有中文内容的功能。
PDFBox也是开源的JAVA PDF库,与iText不同的是,它不仅可以创建PDF文档,也可以读取PDF文件,通过使用PDFBox工具包,可以读取PDF文档的文本内容,实现PDF文档与文本文档的格式互换以及对现有PDF文档的简单编辑等操作。
iText与PDFBox的功能相辅相成。iText可以用于创建设置属性、文本内容初始化和加密的PDF文件。PDFBox用于对现有PDF文件的编辑和处理操作,将二者结合并用于PDF安全编辑系统的功能实现是可行的。
MVC(Model View Controller),是模型(model)-视图(view)-控制器(controller)的缩写,该设计模式着重于将软件设计的界面显示、数据和业务逻辑分离成三个模块,这样,模型与视图之间的代码改进将互不干涉,从而使同一个程序可以具有不同的表现形式。MVC模式具有耦合性低、重用性高、生命周期成本低、部署快、可维护性高、有利软件工程化管理等
优点,MVC设计模式逻辑关系如图1所示。
本文中PDF安全编辑系统采用JavaWeb技术实现[4,5],其设计完全采用MVC设计模式,JSP页面(视图Viewer模块)负责界面的呈现,并将用户的请求发送给Servlet(控制器Controller模块),Servlet负责将数据解析给Java类(模型Model模块),对应的Java类对数据进行处理后返回给Servlet,进而由Servlet选择对应的呈现视图转至JSP页面。
PDF安全编辑系统的功能框架图如图2所示,该编辑系统分为用户管理模块和PDF文档处理模块。用户管理模块着重于对个人信息的管理和密码管理,其用户权限设置功能为系统管理员所具有,用于对PDF安全编辑系统内注册用户的增删改和权限设置。
PDF文档处理模块包含PDF文档的创建、为PDF文档添加水印、设置文档密码、读取文档文本内容以及批量处理等功能。创建PDF文档功能允许用户在填写所要创建PDF文件的文件名、主题、关键字、文件内容和密码(可不设置)之后新建PDF文件。为PDF添加水印向用户提供了一种便捷的标示用户身份的功能;设置PDF文件密码为PDF文件的保存和传输提供安全性保障;读取PDF文档文本内容功能实现了对已有PDF文档文本内容的读取,这一功能对于PDF文件的搜索具有重要意义;批量处理功能是以上功能的结合或批量操作,
该功能具有很强的实用性。
撤单是什么意思PDF安全编辑系统的用户管理模块使用Mysql数据库存储用户信息,每个用户对应一条包含用户名,密码(加盐处理),单位,邮箱,等级(管理员设定)信息的记录,该记录用于对登录该编辑系统的用户进行身份认证和权限限制。用户登录的逻辑处理如图3所示,用户使用其用户名和密码登录PDF编辑系统,控制器和模型模块通过与数据库比对返回信息,若数据库中无此记录或登录名与密码不匹配则编辑系统停留于登录界面,反之判断用户的等级,根据等级跳转到对应用户级别的编辑系统主页面。  在用户界面中,编辑系统具有的用户管理功能通过与数据库的交互达到对用户的增加、删除、修改和查找。
该模块通过JavaWeb技术与iText和PDFbox工具包的结合实现PDF文档处理,iText与PDFbox的具体实现方法属于MVC开发模型的控制器(C)模块。以下为PDF文档处理模块各功能的实现细节。
PDF文档创建:该功能要求用户在功能页面提交文档内容、用户名等属性参数,带有所提交参数的JSP页面转至模型和控制器模块,通过调用iText实现创建PDF文件。
设置密码和添加水印:这两个安全性的功能也是由iText工具包和PDFReader对象具体实现。通过iText中的tEncryption(boolean strength, String urPassword, String ownerPassword, int permissions)方法对文档设置权限和密码,Permissions 一般为下列常量之一:PdfWriter.STANDARD_ENCRYPTION_128(128位对称加密算法),PdfWriter.STANDARD_ENCRYPTION_40(40位对称加密算法)PdfWriter.AllowPrinting(允许打印),PdfWriter.AllowModifyContents(允许修改内容),PdfWriter.AllowCopy(允许复制),PdfWriter.AllowModifyAnnotations(允许修改注释),PdfWriter.AllowFillIn(允许添加内容),PdfWriter.AllowScreenReaders(允许截图)。添加水印的过程为将获取到的PDF文档内容与输出流关联,创建PdfStamper对象,然后使用该对象的getUnderContent()方法获得待添加水印的PdfContentByte对象,完成添加水印功能。添加水印功能的代码如下:
//创建filepath路径下PDF文件的PdfReader对象
PdfReader reader=new PdfReader(filepath);白色背景头像
//获取该对象文件的页码数
int NumberOfPages();
//创建PdfStamper对象地笼捕鱼
PdfStamper stamp=new PdfStamper(reader,
new FileOutputStream(outputpath);
//设置添加水印页面页码
PdfContentByte UnderContent(1);
鸽子种类//获取水印图片
Image Instance(imagepath);
//设置水印在添加页面中的绝对位置
jpg.tAbsolutePosition(200,350);
//获得页面内容,添加水印
UnderContent(1);
under.addImage(jpg);
//完成,关闭PdfStamper对象
stamp.clo();
读取文档文本:该功能由PDFBox的PDF解释方法实现,首先创建PDF解释器,解释PDF文档,然后获得解释后的PDF文档,通过创建PDF文本剥离器,将PDF对象文件的文本内容剥离出来[6,7]。对PDF文件的文本获取示例如图4,示例文件为马映红等的一种安全的电子公文流转系统的研究与设计。  批量处理:该功能建立在文件选择器的基础上,使用Java中的JFileChoor方法可以实现对本地文件的批量选择。结合PDF安全编辑系统的单个PDF文件处理功能,通过循环执行方法来实现批量操作。该功能的实现逻辑如图5。
3.3 PDF安全编辑系统应用实例
PDF安全编辑系统通过Tomcat服务器实现客户端的访问功能,以下为该编辑系统的运行实现图。通过编辑系统的登录页面,用户提交用户名和密码,验证成功后转至编辑系统页面如图6,该图为打开本地测试文档后的系统页面。在该页面中,用户可以通过交互实现相应
的PDF文件处理功能,图7为管理员用户所具有的用户管理功能返回的编辑系统用户列表,管理员可以通过此列表设置所有用户的信息。图8为编辑系统所实现的为PDF文档添加水印的功能,同时,系统支持通过JAVA实现的文件选择器对PDF文件进行批量选择后的结果。

本文发布于:2023-07-31 07:29:43,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1124523.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:功能   用户   文档   系统   编辑   文件   实现
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图