基于Open XML的毕业论文格式修订系统的设计与实现
来源:用户上传
作者:纳利军
摘要:大学本科生的毕业论文格式规范化问题一直困扰着广大师生,“毕业论文格式修订系统”就是为了解决这个痛点而开发的一套软件。它是在Office Open XML文档规范的基础上,引用Open XML SDK类集并结合C#的面向对象技术开发而成的。它提供了一个规范化的Word毕业论文模板,并对套用模板撰写的论文进行全文档自动格式修订,修订后的论文达到了宁夏大学教务处对于本科生毕业论文格式撰写规范的要求,历经实测效果良好。
关键词:Open XML;毕业论文;论文格式规范化;自动格式修订;Word编程
中图分类号:TP311.52 文献标识码:A
文章编号:1009-3044(2022)09-0041-03
1 引言
毕业论文的质量是衡量学生毕业成果的最重要的依据。论文的质量一般从两个方面来考量,一方面是论文的内容,另一方面是论文的格式。能够写出一篇整齐规范、格式符合要求的论文,是一个大学毕业生的必备素质。
为此,学校、学院两级相关单位每年都会颁布最新的本科毕业生论文格式撰写规范,三令五申要求毕业生必须严格遵照执行,然而学生们实际的执行情况仍不容乐观。其中的原因当然有部分学生的不认真和不重视,但更重要的原因就是过细过多的格式要求条款常常让学生和指导教师顾此失彼。
“宁夏大学本科生毕业论文格式修订系统”(以下简称“系统”)就是为了解决这一痛点而开发。学生在套用规定的Word模板编写完论文后,只须将论文导入系统,即可完成全文档格式的自动修订工作。系统在规划设计阶段借鉴了赖晓晨[1]老师在开发“学位论文格式规范自动检查系统”中所使用到的Open XML软件开发工具。
2 系统特点
2.1 基于Open XML
Office Open XML是一种基于XML的Office文档格式规范,是微软提出的一个开放的国际性标准[2],并在Microsoft Office 2007之后的版本开始应用。符合该规范的文档,其典型特征是在传统的office文件扩展名后面添加了字母“x”,例如Word文件的后缀名为“.docx”。查看一个Word文件的内部Open XML文档的简便方法是在文件扩展名后再添加一个“.zip”后缀[3](例如将a.docx更改为a.docx.zip),⑽募转换为一个ZIP压缩格式的文件夹,即可打开文件夹观察到其内部的多个XML文档。
Open XML SDK是一个类集合,通过这些类可以创建和处理遵循Office Open XML文档格式规范的Open XML文档[4]。在系统的开发过程中所引用的DocumentFormat.OpenXml.Wordprocessing组件[5]就是SDK类集中专用于处理Word文档的应用程序接口。该组件可在Visual Studio开发环境中通过NuGet包管理器导入。
开发本系统所使用的编程语言是C#。C#是一种新式编程语言,不仅面向对象,还类型安全。开发人员利用C#能够生成在.NET中运行的多种安全可靠的应用程序[6]。
2.2 套用标准论文模板
系统提供了一个遵照学校的“本科生毕业论文格式撰写规范”编制的模板,其突出特点是运用了Word提供的“限制编辑”功能。一方面,模板将一些固定不变的文档内容(例如页边距、节、论文封面上的学号姓名等条目名称、中英文摘要标题等)作为不可编辑区域,不允许学生做任何文字或格式上的改动;另一方面,留出几个可编辑区域,分别对应着中英文摘要、正文、参考文献等内容部分,允许学生在这些区域内自由编辑。图1是论文模板的封面,其中用“[]”扩起来的区域是可编辑区域。
使用限制编辑功能,不仅可以将毕业论文中的标准化组成部分保护起来,还为系统定位论文的不同编辑区域提供了可靠的依据。
2.3 充分应用样式
“本科生毕业论文格式撰写规范”里针对论文的不同部分(中英文摘要、正文、参考文献等)有不同的段落、文字方面的格式要求,基于此,系统新建了许多的段落和字符样式,在重新修订论文的过程中针对论文的不同部分应用不同的样式。
使用样式的优点之一是多种格式统一管理,例如将段落的缩进、行间距等多个格式放置在一个样式内;优点之二就是只改一处却能覆盖全局,例如需要将正文的字体由四号字改为小四号字体,则只需要修改在正文上所应用的样式即可。
2.4 修订而不是检测
与目前国内大多数高校所开发的论文格式检测系统不同,系统采用的是修订的形式,简单来说就是将文档中(例如一个段落)旧有的格式删除,而直接应用指定的样式。这样做的好处是处理速度快,实现方式简单。Word文档的一个段落就有包括缩进、行间距等十几种格式,针对段落的每一个格式来判断对错不仅烦琐而且耗时。需要特别指出的是,修订只替换文档格式,而不更改其内容,不会造成原始资料的损失。
采用修订形式的另外一个好处就是切实减轻了师生负担。学生在撰写论文时可以完全不考虑格式方面的问题,写完并经过系统的重新修订后,只需要再做去除多余的空格空行、修改书写不规范的各级标题等简单工作。
2.5 采用多线程机制
本科生毕业论文的页数通常都在40页左右,对此进行逐段落的修订比较耗时。本系统将这种耗时操作交由后台线程处理,并在前台通过进度条显示修订进度,从而保证了系统不进入“假死”状态。
3 毕业论文的核心架构
图2显示了毕业论文模板所使用到的Wordprocessing组件中的一些常用类及其所对应的XML标签,完整的“Word文档结构”[7]请参阅微软官方文档。
其中,WordprocessingDocument是顶层类,使用该类的Open方法可以打开一个Word文件。Body、Header和Styles都是WordprocessingDocument的后代子节点类,其中Body对应着document.xml文档中的<w:body>标签,该类代表一个Word文件的主体,Word文档中所有的文字、表格和图片摘要等信息都内嵌在主体里;Header对应着header1.xml文档中的<w:hdr>标签,该类代表毕业论文的页眉;Styles对应着styles.xml文档中的<w:styles>标签,该类代表样式表,系统所定义的所有的段落、字符或表格等样式都储存于样式表中。
nlc202205172009
转载注明来源:https://www.xzbu.com/8/view-15431580.htm