本科学位论文规范格式自动调整系统的设计与实现

2019-01-24 作者:小编

摘要:在Eclipse环境下,利用实现了VBA接口的Jacob word接口,对Microsoft Word软件进行二次开发,开发了一款能够识别模板论文的文字,图片,表格等格式,并且将其应用到待排版论文中去的自动调整系统,进而实现了学位论文格式的规范化。PaperisOk论文查重网提供中国知网查重官方入口服务,所有论文查重系统均来之官网检测,查重报告均支持验证真伪!不论您学习哪个专业,写作什么类型的论文,只要您有文本相似度检测的需求,中国知网查重检测系统总有一个版本适合您。
关键词:论文排版;二次开发;格式识别;自动调整
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)02-0065-03
本科学位论文作为评价高校本科生学习质量的重要指标,对于高校和大学生都非常重要。随着高等教育的不断发展,本科学位论文除了在内容和创新方面有很高的要求之外,论文的格式同样也备受关注。目前学位论文的格式调整工作还是由学生本人完成,指导教师纠正。一方面,学生调整论文的格式需要不少时间,从而导致在内容创新上花费的精力相对更少,不仅如此,调整格式时也难免会出现错误;另一方面,指导教师发现论文中存在的格式错误也同样不易。因此,如果能根据论文格式规范标准,利用当今发达的软件技术来自动完成论文格式的规范工作,将会为学生和指导教师减少不必要的工作量,让他们将更多精力集中在内容创新方面,进而提高学术论文的质量。目前市场上虽然有排版软件,但是针对学位论文的却并不多,而能夠自动识别格式规范并自动调查论文格式的软件凤毛麟角。因此就市场需求来说,开发一款专业的学位论文格式规范自动调整系统也显得很有必要。
1 开发环境
1.1 VBA
Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言1。主要用于扩展Windows的应用程序功能,特别是Microsoft Office软件。它能够通过语言中的对象及对象的属性来对Office文档等对象的各类属性进行读取和修改,从而实现应用软件的可编程化。同时Microsoft Office软件也为VBA语言提供了很好的开发环境,在软件中不仅可以直接执行VBA宏代码,并且还能通过录制VBA宏代码的方式实现从操作到代码的逆向转换,更为程序开发提供了方便。本系统在开发过程中将VBA开发手册与录制宏的方式结合起来,从而大大提高开发的效率。
1.2 Jacob
Jacob接口通过在Java中调用com接口自动组件(VBA),实现了一种简单,灵活的Java与COM的通信方式。在实现了Jacob接口的Java系统中,绝大多数事物和事物的属性都可以采用不同类型的对象来表示1,其中包括:
1) word应用对象 ActiveXComponent word
2) word文档集对象 Dispatch Documents
3) word文档对象 Dispatch wordFile
4) 光标及区域对象 Dispatch selection,range
5) 其他文档属性对象
而对于对象的操作采用的是链式操作法:
Dispatch 论文文档 = Dispatch.get(word,”Document”).toDispatch();
Dispatch 段落 = Dispatch.call(论文文档,”Item :1”).toDispatch();
因而可以利用Jacob接口和Java代码中调用文档的各个属性和和方法,可以实现对文档格式的读取和应用,进而满足了本系统的开发需求。
2 系统整体结构设计
为了能够提高系统的可读性和可维护性,系统按照自顶向下的方法对系统功能结构进行了设计。按照模块的功能来分,系统可以被分为三个模块,分别是格式的读取和存储模块,格式设置模块,自动生成目录模块。其中,格式读取和存储模块可分为读取页面属性、读取正文格式、读取页眉页脚等功能;格式设置模块可分为设置文档页面属性、删除文档多余符号、设置文档正文格式、设置文档页眉页脚格式等功能。具体的系统模块划分如图1所示。
针对word中格式的多样性和不定长性,系统采用的数据存储结构是全局变量String数组+链表的存储结构。读取和存储模块通过导入word文档,获得文档的控制和修改权限,进而对文档的属性和内容格式进行读取,并且将其转换为String类型,终基本有序的存放在数组当中。格式设置模块首先打开需要进行排版的文档,通过定位算法查找到文档的可调整部分,并对可调整部分中被认定的无用符号进行删除,后再按照指定的顺序对文档属性和文档内容的格式进行自动调整。
3 核心算法及优化
3.1 关键位置定位
被调整格式的论文内容可能包含有不需要进行调整的部分,如封面、保密协议等,因而在进行格式读取或调整之前,需要寻找合适分界点,来对文档的待调整内容进行划分1。经过对文档结构的分析,系统需要寻找到分界点就是“目录”。由于没有对待排版文档做的要求,因而文档的内容有很大的复杂性。通过归纳,待排版文档内容可能存在如下两种情况:种情况是待排版文档包含“目录”段落,在上述情况下,定位算法在目录的上方寻找到“目录”段;第二种情况即待排版文档不包含“目录”,由于摘要段落是一篇完整论文所必备的成分,针对上述情况,定位算法借助“摘要”段落进行查找。种算法结构描述如下:
将光标定位到摘要段落起始位置;
While(遍历摘要段落之前的每一段)
{
获取该段落的区域;
进行区域的文字分析;
If(包含“目”并且包含“录”并且不包含其他文字)
{
记录当前段落位置,退出循环;
}}
上述寻找文档关键位置算法的前提是“目录”段落的存在,然而通常文档可能并不具有这个条件。为了使系统具有更强的适用性,系统在关键位置查找失败后将触发自动插入算法,在合适的位置插入“目录”段落。该算法的关键点在于寻找一个合适的插入点,通过文档的必要的部分(摘要段)可以实现。
3.2 段落格式调整
根据论文段落调整格式的属性值不同,可将段落分为两种类型,种是文档中的非正文部分,如摘要、关键词等,调整的属性包括Font(字体)、Bold(加粗)、Size(大小)等;第二种是文档中的正文段落进行调整,调整的属性包括Font(字体)、Bold(加粗),Size(大小)、Alignment(对齐方式)、FirstLineIndent(首行缩进)、SpaceBefore(段前)、SpaceAfter(段后)等10种属性。由于正文段落中可能包含标题、表格、图片以及正文内容,而上述几种形式的属性都不一致,因此需要区别对待。考虑到表格和图片格式与文字的不同,可另处理。因此本节所述的段落格式调整只考虑正文段落中的标题和正文内容。段落正文与标题有一定字符数的限制,据统计,段落正文字符数至少是40个字,而标题所包含字符则要求少于40个字,因此对于标题与段落正文的区分可通过所包含的字符数来分析。
具体而言,段落格式调整的步骤如下:系统首先通过上节提到的定位算法,定位文档的起始点;接着对起始点之后的每个段落进行分析。在对段落进行分析过程中,系统通过Rang对象获得待分析段落区域相对于待排版文档起始点的起始位置(start)和结束位置(end)。接着根据区域包含的内容和字符数进行判定。如果段落区域包含表格区域或者图片区域(特殊区域另做处理),则跳过当次循环。否则统计待分析段落区域所包含的字符数,如果超过40个字,则直接判定为段落正文,可根据段落正文属性进行调整;否则判定为标题,至于是标题级别可根据下节的标题级别判定算法进行分析。具体的算法流程如图2所示:
3.3 标题等级识别
在段落格式的调整过程中,标题等级识别的正确性不仅影响到段落的格式,而且还会导致后期自动生成目录的错误,因此这是整个系统的关键步骤。本系统在进行标题等级识别时,首先进行的字符数判定,而对于字符数判定合格的段落,则判定为标题。对于标题等级的识别,有两种算法。种识别算法是对段落的大纲等级(OutlineLevel)进行识别和读取,由于论文作者常常忽略了段落大纲级别的设置,因此种算法在很多时候往往准确度不高,因此系统采用第二种识别方案,即对段落的前置序号如(1.1.2)2进行识别,系统根据前置序号的“.”字符与数字字符的数量来综合分析。为了消除正文中可能出现与前置序号类似的字符序列,系统对前置序号的区域进行了严格的限定。第二种算法的具体描述如下。
将光标定位到段落的起始位置
While(遍历段落区域的字符)
If(当前字符为数字)
数字字符数加一;
标记若下一个字符为“.”则有效;
Else if(如果当前字符为“.”并且字符有效)
“.”字符数加一;
标记若下一个字符为“.”则无效;
Else if(如果当前字符为“ ”)
跳过此次循环;
Else
序号区域结束,结束循环;
通过上述算法,系统可以获得有效的数字字符个数p和“.”字符个数n。由于一级标题在格式调整方面有着一定特殊性,因此将一级标题进行单独处理,系统规定当 p=1并且n<2的情况为一级标题。其余当n!=0&&p>1的情况为 n+1级标题。
4 系统实现效果
本系统是为了方便本科生对毕业论文进行格式调整而开发的系统,因而我们采用的简洁的软件用户使用界面,用户只需要选择模板文档和待排版的文档即可自动进行排版。经过测试,待字数10000字左右的待排论文,排版过程平均耗时为3.5分钟。论文格式调整前与调整后的效果图如图3、图4所示。
5 结束语
本系统不是仅能对一类论文进行论文格式调整,而是对于大部分类型的论文,在用户提供模板的前提下,均能准确的进行自动调整。本系统系统不仅极大地解放了人工劳动,而且相对于人工,其具有更高的准确性。
目前,本系统已经投入使用,虽然其设计思路和代码仍有一定的优化空间,但已经能够基本实现论文排版要求,在提高自动排版的准确率同时减少花费的时间,使其更加智能化、人性化。
參考文献:
[1] 李爱玲, 李湘江. 基于VBA的Word文档自动评阅技术研究[J]. 科学技术与工程, 2008, 8(17).
[2] 金保华, 李金旭. 基于JACOB的Java通用WordWriter组件设计[J]. 郑州轻工业学院学报:自然科学版, 2001, 26(3).
[3] 何伟平, 张晓东. 学位论文自动规范化排版系统的设计[J]. 广东化工, 2015, 1(42).
[4] 潘若瑛, 张忠能. 多模板多格式论文校验与自动排版系统的研究[J]. 微型电脑应用, 2013, 29(3).

48
来源:电脑知识与技术 2018年2期

.—— END ——.