APP下载

基于可复用格式的打印文本自动生成系统设计与实现

2017-03-31尉寅玮吴雅轩

软件导刊 2016年8期
关键词:格式化模板设置

尉寅玮+吴雅轩

摘 要:通过对格式化文本生成工作的调研分析,针对文本格式化过程中存在的各种弊端,设计了一套基于B/S架构的可复用格式打印文本自动生成系统,通过将格式信息与内容信息的编写进行合理划分,实现了格式化文本的自动生成,从而提高了格式化文本的编写速率,降低了因为格式问题而导致的文本错误。

关键词关键词:JACOB;Freemarker;自动生成系统;格式复用;JSPSmartUpload

DOIDOI:10.11907/rjdk.161882

中图分类号:TP319

文献标识码:A 文

章编号:1672-7800(2016)008-0086-03

0 引言

随着信息化时代的到来,日常工作与生活中使用计算机进行文本撰写并打印的需求越来越多。而在不同场合下文本格式也有着不同的要求,尤其在学校、企业、政府部门等工作环境下,需要产生大量有严格格式要求的文本文件进行导出打印。传统模式下,不同部门给出文本格式要求或提供模板,由相应填写人员根据该要求或模板进行内容录入,这样重复而细致的工作使得填写人员将大量的時间与精力集中于格式编辑与调整之中,甚至投入的时间与精力可能会超过文本内容编写本身。即使如此,仍然难以避免因格式问题造成的反复修改与重复打印,既降低了效率,也造成了资源浪费。与此同时,对于相同格式不同内容的文本需要进行多次重复的调整工作,使效率大大降低。为了解决以上问题,本文设计开发了一种基于可复用格式的打印文本自动生成系统。

通过该系统,可根据需求设置或导入格式模板并保存,在使用过程中,内容填写人员只需将文本内容输入系统,即可自动生成格式化的文本文件,更为重要的是,可以将该格式信息在系统中进行存储,实现复用。如此,不仅大大减少了工作量和出错率,使得编写人员将主要精力集中于文本内容,同时在某种程度上也避免了纸张浪费,节约了成本,实现了节能环保。

1 系统需求与流程分析

1.1 系统需求分析

系统设计的目的在于提高文本写作效率并满足格式化打印的实际需求,避免传统文本编写打印模式的弊端,使内容填写人员专心于文本内容本身,而将耗时费力易于出错的格式设置及调整工作交由系统完成。在提高效率的同时,能够更加准确地按照指定格式文本进行打印输出,避免了因格式问题所造成重新打印的时间与金钱等不必要的开销。尤其是可以将该格式文件保留在系统之中供批量文件打印以及重复使用,实现一次录入,重复使用的可复用格式的文本自动生成。因此,系统应该具有设置文本格式、导入格式模板、保存格式信息、输入文本内容、生成格式化文件,以及导出打印生成文本功能。

1.2 业务流程分析

通过实际调研分析,确定本系统的基本流程如下:①选择格式生成方式;②选择手动格式设置,通过系统提供向导进行格式设置,如字体格式、段落格式、页面格式、目录格式设置等;③选择导入格式设置,将已存在模板文件进行导出,生成一个与该导入文件格式相同的格式设置文件;④将产生的格式信息进行存储,用于后期批量生成文本以及格式复用;⑤输入文本内容;⑥将文本内容导入至已设置好的模板中,产生最终导出文本;⑦将最终文本进行导出打印。

2 系统总体设计

2.1 系统功能模块划分

本系统主要包括七大模块:手动格式设置模块、导入格式模板模块、存储格式信息模块、输入文本内容模块、格式化文本生成模块以及打印模块,如图1所示。

2.2 系统功能模块介绍

(1)手动格式设置模块。该模块中通过若干步骤,手动设置并生成符合要求的格式。其设置内容主要包括:段落格式设置模块,主要对文档中每个段落进行设置,可以修改每个段落的对齐方式、首行缩进、段前、段后、行距等一系列属性设置;页眉页脚设置,可以对文档进行简单的页眉页脚的文字设置,添加页脚信息,格式为1/n、2/n、3/n等;标题格式设置,主要用来对文档各级标题的字体、大小、位置信息等进行控制;页面设置,主要对文档页面间距等信息进行设置;生成目录,主要对整篇文档生成的目录格式进行设置。

(2)导入格式模板模块。该模块主要根据已有固定模板按需求填写内容,生成文档后进行处理。通过该模块的使用,用户可将格式文件上传至系统中,系统对格式文件进行分析,产生一个关于当前文档的格式信息,供后续操作使用。

(3)存储格式信息模块。该模块的功能是将手动设置的格式信息或者导入格式模板文件分析得到的格式信息进行存储,置于系统之中,并进行保存,供后续生成格式化文本使用,该模块功能虽然单一,但却是整个系统的关键所在,也是本系统的创新之处,该功能的加入,使得本系统具有了批量生成格式化文本功能,同时也使本系统中的格式信息可以被复用。

(4)输入文本内容模块。在文本格式信息创建完成之后,通过该模块对文本内容信息进行添加。在填写内容时,需设置当前添加内容所属类别,如题目、摘要或正文,为后期生成相应格式做准备。

(5)格式化文本生成模块。该模块为本系统的核心模块,在该模块中,系统将前面步骤中产生的格式信息与填写的内容信息相结合,产生符合特定格式规范的文本。此功能模块中,文本不但可以使用新产生的格式信息,同样也可以复用保存在系统已有模块中,并且具有针对多个不同内容文本进行批量生成格式化文本的功能。

(6)导出与打印模块。该模块将已经生成的格式化文本信息进行导出、打印操作,并提供批量导出、打印等功能,以配合本系统的格式复用功能的使用。

3 系统关键模块实现技术及原理

本系统旨在将打印文本中的格式信息与内容信息分别进行输入,再通过格式化文本生成模块将指定格式信息与生成内容信息进行合成,最终实现格式化信息的导出打印。因此,本系统中实现的核心在于格式信息的输入。为了满足不同需要,本系统使用两种模式进行格式信息输入,分别对应于系统中的手动格式信息设置模块以及导入格式模板模块。本文主要对这两个模块中所用到的核心技术,也即本系统实现的技术难点作进一步介绍。为了描述方便,选择以Word文档为例进行描述。

3.1 系统逻辑结构

根据本系统需求,采用Bootstrap[1]进行页面样式设计,并结合jQuery与Ajax[2]技术进行异步数据请求,服务器段使用Java Web技术进行实现,JSP页面中使用JSTL标签,最后导出格式信息使用MySQL数据库,上传模板存于服务器端。系统逻辑结构如图2所示,采用基于组件式开发的MVC(Model View Controller)设计模式[3],使得系统具有良好的架构,更加便于系统功能的扩展与维护。

3.2 手动格式设置模块

在手动格式设置模块中,用户根据需求在输入内容之前产生一个符合要求的格式信息,主要有页面设置、段落设置、目录设置以及页眉页脚设置。为了对Word文档进行格式设置,本系统使用JACOB加以实现。

Jacob[4]是Java.COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。通过Jacob原本的DLL的动态链接库,并且使用JNI的方式实现了在Java平台上对COM程序的调用[1],原理如图3所示。

本系統通过对JACOB的使用来对Word文档格式进行操作,直接调用其方法并结合用户输入设置要求,产生相应的格式信息。

3.3 导入格式模板模块

在某些应用情况下,用户需要根据已有的模板文件来进行内容填写,每次即使使用相同模板填写内容,也需要在模板上进行重新修改,对于批量产生文件依次进行输入调整更是机械而低效的工作,但这种工作模式非常适合由计算机系统来代替人工进行。因此,在本模块中,用户可预先导入一个已存在的格式模板文件,而将需要填入该模板文件中的内容进行自动填写,从而批量生成相同格式文件;同时,这种模式可以将格式信息保留,再次使用时无需导入格式,直接进行选择即可生成指定格式的打印文本。

为实现将内容导入格式模板,本系统使用了Freemarker[5]技术。FreeMarker是一款模板引擎,即一种基于模板和数据,并用来生成输出文本的通用工具。Freemarker是通过freemarker.template.Configuration对象对模板进行加载,之后通过调用getTemplate方法获得模板。在Configuration 中可以使用下述方法建立3种模板加载。

void setDirectoryForTemplateLoading(File dir);

void setServletContextForTemplateLoading(Object servletContext,String path);

void setClassForTemplateLoading(Classcl,String prefix)

模板加载完成后,获得该指定模板的格式信息,待后续模块中将内容信息填入生成好的模板即可完成格式化文本的生成。

3.4 JspSmartUpload技术及原理

JspSmartUpload[6]组件是应用JSP进行B/S程序开发过程中经常使用的上传下载组件,它使用简单、方便。JspSmartUpload是一个可免费使用的全功能的文件上传下载组件,适于嵌入执行上传下载操作的JSP文件中。该组件有以下几个特点:①使用简单;②能全程控制上传;③能对上传的文件在大小、类型等方面进行限制;④下载灵活。JspSmartUpload组件中主要包含了File、Files、Request和JspSmartUpload核心类。

(1)File类。该类不同于java.io.File类,在编写程序时应注意使用。File类用于保存单个上 传文件的相关信息,如上传文件的文件名、文件大小、文件数据等。

(2)Files类。该类存储了所有上传的文件,通过类中的方法可获得上传文件的数量和总长度等信息。

(3)Request类。因为当Form表单用来实现文件上传时,通过JSP的内置对象request的getParameter()方法无法获取其它表单项的值。

(4)SmartUpload类。SmartUpload类用于实现文件的上传与下载操作。

4 结语

本文实现的基于可复用格式的打印文本自动生成系统,将文本格式编辑调整与文本内容编写工作进行划分,使得文本内容填写人员能够将精力集中于内容编写上,同时采用已存在的符合规定的格式信息来生成格式化信息,这样做不但可以提高工作效率,同时也可以减少文本格式错误造成的重复打印或者文本提交不成功等问题。该系统目前已经应用于天津理工大学中环信息学院的毕业设计管理系统中,以及自动生成学生毕业设计过程中所使用到的各种表格或文本上,不仅提高了毕业设计效率,而且辅助解决了毕业设计跟踪监控难题,极大方便了参与毕业设计的各类用户。

参考文献:

[1]徐涛.深入理解Bootstrap[M].北京:机械工业出版社,2014.

[2]何丽,龚旺.jQuery在AJAX技术框架中页面加载的应用[J].计算机时代,2011(8):25-26.

[3]ROD JOHNSON.J2EE设计开发编程指南[M].魏海萍,于晓菲,毛选,译.北京:电子工业出版社,2003.

[4][美]埃克尔.Java编程思想[M].北京:机械工业出版社,2007.

[5]高慧.C/S到B/S模式转换的技术研究[M].青岛:中国海洋大学出版社,2009.

[6]LUSHENGDI.JspSmartUpload上传下载全攻略[EB/OL].http://www.blogjava.Net/lushengdi/archive/2013/01/05/393838.html.

(责任编辑:孙 娟)

猜你喜欢

格式化模板设置
现代人守则:昏死之前请把手机格式化
中队岗位该如何设置
格式化
铝模板在高层建筑施工中的应用
本刊栏目设置说明
中俄临床医学专业课程设置的比较与思考
城市综改 可推广的模板较少
直接格式化对硬盘的寿命有影响吗
地铁出入段线转换轨设置