更全的杂志信息网

基于VSTO的文档审阅批注自动导出技术

更新时间:2009-03-28

0 引 言

在软件测试领域,配置项测试和系统测试都将文档审查列为一项必测的测试类型[1-3]。通过审阅文档,测试人员审查文档的完整性、一致性及准确性[4]。测试人员通常借助Word审阅功能进行文档审查[5],发现文档问题时,即在原文上进行批注,在批注规范的情况下,一条批注代表一条文档问题[6]。批注模式在文档审查时虽然方便,但审阅后文档问题的入库工作十分繁琐,不仅需要人工将文档审查过程中发现的问题从Word批注中逐条摘录入库,为了使问题描述清晰明确,还需为每条问题添加其在文档中的定位描述[7-8]

为解决此问题,本文探索一种文档审阅批注自动导出方法,基于VSTO技术对MS Office Word进行功能扩展,新增一项插件功能,结合提出的批注筛选定位算法,实现对Word文档中批注的分类识别和自动导出,导出批注的同时为其自动生成定位描述,生成的批注描述可供测试人员在问题入库时直接粘贴复制。

1 相关技术

1.1 Word批注批量导出

Word自身也有一些实现批注批量导出的方法和技巧[9],主要有以下3种:1)对批注后的文档选择“单个文件网页”格式进行另存为,所有的批注在文末被统一列出,但仅列出了批注的作者和内容这2项信息,采用超链接跳转的方式实现批注定位;2)点击Word“审阅-审阅窗格”按钮,打开“审阅窗格”面板,面板中列出了Word文档中所有的批注,也是采用超链接跳转的方式实现批注定位;3)采用虚拟打印的方式,将打印设置中的文档属性选择为“标记列表”,打印输出的PDF文档内容实际和Word“审阅窗格”面板中的内容一致。上述3种方法虽然均能在一定程度上实现Word文档批注的列表和导出,但是导出的批注信息有限,且均不能生成批注的定位描述,不能满足文档问题入库对批注描述的定制化需求。

1.2 VSTO技术介绍

VSTO(Visual Studio Tools for Office)是一套用于创建自定义MS Office应用程序的Visual Studio工具包。VSTO封装了各类对象模型,提供丰富的类库供用户上层调用,并通过主互操作程序集(PIA)实现与Office应用程序的底层交互。基于VSTO用户可实现3类Office应用程序开发:插件应用程序(Add-in)、文档(Document)及文档模板(Template)。通过进行插件应用程序开发,可扩展Office应用程序的功能,实现自定义功能需求[10]

Word应用程序的功能扩展开发主要基于Microsoft.Office.Interop.Word类库。在VSTO中,Word被抽象为一个Word对象模型,其层次结构如图1所示。Word对象模型主要包含5大对象:Application,Document,Selection,Range及Bookmark。其中,Application对象代表Word应用程序,系统中只有一个Word进程,管理着所有打开的Word文档,Application对象是Word应用程序开发的入口;Document对象代表一个Word文档,新建空文档或打开一个已有文档,系统都将创建一个Document对象,并添加到Application对象的文档列表中;Selection对象代表当前的选择区域,没有选择区域时则代表当前光标点;Range对象代表一个连续的区域,由开始字符位置和结束字符位置确定;Bookmark对象代表文档中的一个标签[11]

  

图1 Word对象模型层次结构图

Word对象模型中的5大对象,既相互包含又部分重叠[12],程序开发时需要结合具体场景正确使用。Document对象作为Word文档的抽象类,其成员和方法是Word程序扩展开发的重点处理对象,可通过Document对象获得Word文档的段落列表(Paragraphs)、表列表(Tables)、批注列表(Comments)等各类重要数据,以完成相关开发。

这一阶段的课程目标在保留“双基”的基础上增加了“过程与方法”及“情感态度与价值观”。“一维”到“三维”的变化体现了对“双基”的继承与发展,“三维”目标不仅强调知识与技能的获取,更强调获取知识与技能的途径与方法,同时强调在过程中培养学生的学习兴趣,激励、调动学生学习的动机,完善学生的价值判断,培养其形成科学的认知态度。

2)作用于目录的批注:本文约定作用于文档目录、插图目录及表格目录的批注均视为作用于目录的批注,且约定用户在目录处进行批注时,只允许批注在“目录”“插图目录”及“表格目录”目录标题上;通过识别批注原文是否为“目录”“插图目录”或“表格目录”实现识别及定位;其描述格式如表1第2条所示,“位置”栏存储标签“目录”,“原文”栏存储批注选择的原文。

2 文档审阅批注自动导出原理

根据GJB-438B要求,一份软件文档主要由:封面、目录(包括插图目录、表格目录)、标题、正文、图、表,以及页眉和页脚等几大要素组成[17]。根据日常实践习惯,文档审阅时,页眉和页脚一般不会添加批注,Word亦不支持此批注,封面和目录可能存在少量批注,批注主要存在于正文、标题、图和表。

2.1 文档审阅报告模板

比较不同服药模式的两组患者所取得的治疗效果,可见中西药结合的治疗方式,能够取得更显著的治疗效果,两组患者治疗效果对比,差异有统计学意义(P<0.05),西药治疗组21例,十分有效8,基本有效5,无效8,总体有效率61.90%;中西药结合治疗组21例,十分有效12,基本有效7,无效2,总体有效率90.48%。

因为一般情况下文档目录页前的页数并不多且内容相对简单,上述存储的“位置”和“原文”这2项信息可实现批注的定位。

  

图2 文档审阅报告模板

2.2 批注定位规则及描述格式

为了简化文档问题入库过程,自动生成的审阅批注描述应尽可能详细完备,便于测试人员入库时直接使用。根据这一需求,本章首先制定审阅报告模板,统一规范审阅批注导出的内容要素及描述格式。再结合文档的结构,详细介绍6类批注的定位及描述规则,并基于此给出批注筛选定位算法。

在构造生成批注定位信息时,本文在Word对象模型提供的基本位置属性的基础上,进一步实现批注的筛选定位,不仅能定位批注的页码和段号信息,还可按封面、目录、正文、标题、图及表共6类情况进行分类识别。

表1 6类批注描述格式

  

序号位置原文批注内容1封面批注选择的原文批注内容描述2目录目录/插图目录/表格目录批注内容描述3第X页标题标题3.2.1 XXX批注内容描述4第X页图图4XXX批注内容描述5第X页表表5XXX[,单元格内容]批注内容描述6第X页第X段正文原文(仅摘录前30个字符)批注内容描述

草33区块被西南部的石村断层及东北部的草25断层所切割,地层向西北倾没,总体构造形态为向东南方向逐渐抬升超覆的平缓鼻状构造,地层倾角为2.0°~3.0°。油藏埋深884.0~1 014.0m。储层为疏松砂砾岩,厚度小于6m,但分布较稳定、连通性好。储层孔隙度一般30%,渗透率变化范围为(1 340~7 752)×10-3μm2。原油密度0.967 1~0.993 4g/cm3,50℃温度条件下,地面脱气原油黏度10~60Pa·s,属特稠油油藏。

1)作用于封面的批注:本文约定目录页前所有页面上的批注,都统一视为作用于封面的批注;通过获取当前批注的页面属性,并判断其是否在目录页之前已识别封面批注;封面批注的描述格式如表1第1条所示,“位置”栏存储标签“封面”,“原文”栏存储批注选择的原文。

部编版教材对想象作文的新要求不仅有利于德育教育的实施,而且对学生创新思维力、想象力的提升也具有重要作用,是对新课标的完美诠释。基于此,在新教材的想象作文教学中,教师应充分发挥小说审美教学的功能,通过培养学生对生活的热爱,掌握足够的写作技巧,有效的阅读量,运用合情合理的想象去写好作文,达到教材革新的目的。

鉴于VSTO灵活丰富的功能支持[13-16],本文基于VSTO进行Word功能扩展,实现用户自定义的批注自动导出功能,满足软件测试活动中文档审查及文档问题入库的定制化需求。

3)作用于标题的批注:本文约定用户在文档各级标题上进行批注时,需要选择完整的标题内容;识别时,首先获取文档的标题列表,获得批注原文后,通过与标题列表进行比对实现识别及定位;其描述格式如表1第3条所示,“位置”栏存储标签“标题”,并添加页码定位信息,“原文”栏存储批注选择的完整标题内容。

2.全民健身休闲设施条件得以改善。2016年,广西筹措169亿元用于全民健身工程项目建设,重点支持建设18个县级体育场馆、41个街道(社区)全民健身广场暨街道(社区)多功能运动场、72个乡镇全民健身广场暨乡镇农民体育健身工程、80条全民健身路径和371个2016年度“脱贫摘帽”贫困村村级农民体育健身工程等体育惠民设施。

4)作用于图的批注:由于文档中的插图均是不可编辑的,因此本文约定,用户对图标题或插图内容需要进行批注时,均批注在图标题上,且选择完整的图标题内容;识别时,首先获取文档的图标题列表,再获取批注原文,通过与图标题列表进行比对实现识别及定位;其描述格式如表1第4条所示,“位置”栏存储标签“图”,并添加页码定位信息,“原文”栏存储批注选择的图标题。

文档问题描述主要关注2项信息:问题的具体描述和问题的定位描述。因此以审阅批注形式体现的文档问题,其描述主要关注3项信息:批注选择的原文、批注的内容描述以及批注在文档中的位置信息。因此,本文制定了图2所示的审阅报告模板,该报告主要有2个列表:批注列表和统一描述列表。批注列表以表格的形式逐条描述各条批注的定位描述、原文及批注内容。批注原文和批注描述取决于审阅者,定位描述则由本文的方法构造生成。统一描述列表,将各条批注的3项信息按表中给出的描述规则进行组合描述,统一描述列表中的内容可供测试人员直接粘贴复制进行文档问题入库。

5)作用于表的批注:文档中表的批注有2种情况:一种是直接批注于表标题;另一种是批注于表单元格。表标题批注,其识别、定位和描述类似于图标题的处理。

下面详细介绍6类批注的定位规则及其在批注列表中的描述格式。如表1所示,“位置”和“原文”这2项信息的组合可辅助用户对批注进行定位,批注内容栏则记录批注的具体内容描述。

表单元格批注,首先识别判断批注原文“是否在表格中”的属性,若是,则识别为表单元格批注,再获取单元格信息及其所属表格信息。表批注的描述格式如表1第5条所示,表标题批注,其“原文”栏仅描述表标题;表单元格批注,其“原文”栏除描述表标题外,还描述单元格内容。

6)作用于正文的批注:正文批注主要作用于正文中的段落,有以下3种情况:批注原文为段落的部分内容,批注原文为某一整个段落,批注原文为多段内容。正文批注在3种情况下都定位到段落,第一种情况定位到原文所在的段落,第三种情况定位到原文第一个段落。正文批注的描述格式如表1第6条所示,“位置”栏存储标签“正文”,并添加页码和当前页段号这2项定位信息,“原文”栏存储批注选择的原文,对于原文字符较多的情况截取前30个字符,剩余部分用“……”代替。

2.3 批注筛选定位算法

基于上述6类批注的定位和描述规则,下面给出批注筛选定位算法,如图3所示:1)首先构造获取原文档的几项基本信息供后续判断中使用:标题列表、图标题列表、表标题列表及目录页页码;2)获取原文档的批注列表,并遍历该列表,逐条处理每条批注:①获取批注的原文、所在页页码及“是否在表格中”的属性isInTable;②isInTable为真,则识别为表单元格批注;③若为否,则依次识别其他各类批注,并进行相应的导出处理。

3 文档审阅批注自动导出工具实现效果

基于上述导出原理,本文采用VSTO技术进行Word插件应用程序开发,实现一个“生成审阅报告”Word插件功能项。开发部署后,Word启动时自动加载该插件,如图4所示。文档审阅完毕后,点击“辅助工具-生成审阅报告”按钮,即可完成审阅报告的一键生成,按审阅报告模板导出批注。

这样编排不仅能够把分数除法计算法则与整数除法计算法则统一起来(如图2),还可以把四则运算的计算方法统一起来(如图3).

 

图3 批注筛选定位算法

表2和表3分别是一份自动生成的审阅报告实例中的批注列表和统一描述列表,各条批注的描述均符合前文制定的描述规则,问题描述清晰明确。

在审查文档时,只要测试人员规范合理地选择批注原文及描述批注内容,统一描述列表中组合描述的各条文档问题,其语义亦比较合理,并且可供测试人员直接粘贴复制以完成文档问题入库。在该自动工具的辅助下,测试人员审查文档时可以将主要精力集中在文档审阅和批注描述上,无须顾虑后续的文档问题入库,对测试人员仔细审查文档能起到很大的促进作用。

“综合所得是一项涉及整个征管模式上改进的问题,哪些要计入综合所得,为何计入综合所得?这些都需要考虑。而且还涉及到对应的群体利益的问题,以及汇算清缴、申报核对等问题,这也是改革迟迟没有推进的原因。”刘剑文向记者表示。

  

图4 “生成审阅报告”Word插件功能项

4 结束语

基于文档审查时文档问题入库的实践需求,本文探索并实现了一种文档审阅批注自动导出方法。批注的自动批量导出解决了文档问题入库时人工逐条摘录的问题,定位描述的自动生成解决了人工添加定位描述的问题。制定的审阅报告模板规范了导出的审阅批注的内容要素及描述格式,在测试人员文档批注规范合理的情况下,生成的审阅报告中审阅批注的描述清晰明确,自动生成的“统一描述列表”中的文档问题描述可供测试人员直接粘贴复制,很大程度上简化了测试人员文档审查后文档问题的入库工作,具有较大的实践意义。

表2 审阅报告中“批注列表”实例

  

序号位置原文批注内容1封面文档标识文档标识项无具体内容2目录目录目录未及时更新3目录插图目录插图目录页码索引失败4目录表格目录表格目录页码索引失败,目录未更新5第10页标题1.2 系统概述建议完善丰富系统概述中系统组成部分的描述,将系统描述清楚6第10页第3段正文系统包括由YY、YY组成表述混乱,请重新组织文字7第11页图图1 XXX系统组成结构图图中文字字体太小,建议适量增加8第12页表表2XXX系统软件功能表建议将软件功能按划分的组成模块分开描述9第12页表表2 XXX系统软件功能表,ZZ功能文档和软件不一致,此功能在软件中未体现…

表3 审阅报告中“统一描述列表”实例

  

批注:1、封面,“文档标识”,文档标识项无具体内容;2、目录,“目录”,目录未及时更新;3、目录,“插图目录”,插图目录页码索引失败;4、目录,“表格目录”,表格目录页码索引失败,目录未更新;5、第10页标题,“1.2 系统概述”,建议完善丰富系统概述中系统组成部分的描述,将系统描述清楚;6、第10页第3段正文,“系统包括由YY、YY组成”,表述混乱,请重新组织文字;7、第11页图,“图1 XXX系统组成结构图”,图中文字字体太小,建议适量增加;8、第12页表,“表2 XXX系统软件功能表”,建议将软件功能按划分的组成模块分开描述;9、第12页表,“表2 XXX系统软件功能表,ZZ功能”,文档和软件不一致,此功能在软件中未体现;…

参考文献

[1] Kaner C, Falk J, Nguyen H Q. 计算机软件测试[M]. 北京:机械工业出版社, 2004:11-23.

[2] Glenford J M. 软件测试的艺术[M]. 张晓明,黄琳译. 北京:机械工业出版社, 2016.

[3] 杜源. 软件测试技术的应用及其发展趋势[D]. 成都:四川大学, 2005.

[4] 杨万君,伍滨. 软件文档审查的基本要求[J]. 中国军转民, 2013(2):49-50.

[5] 邓雯,刘林霞. 批注功能在审稿流程中的应用浅析[J]. 湖北师范学院学报(自然科学版), 2016(3):214.

[6] 季超英,宋晓秋. 软件文档质量的度量方法研究[J]. 计算机工程与设计, 2007(17):4068-4071.

[7] 张巍. 软件缺陷库管理系统[D]. 长春:吉林大学, 2015.

[8] 陈艳. 软件缺陷管理技术研究与实现[D]. 成都:电子科技大学, 2014.

[9] 王国胜. Office实战技巧精粹辞典[M]. 北京:中国青年出版社, 2015.

[10] McGrath K. VSTO开发指南[M]. 李永伦译. 北京: 机械工业出版社, 2009.

[11] 刘永富. VSTO开发入门教程[M]. 北京:清华大学出版社, 2017.

[12] 陈建丽. 基于Word对象模型的Word文档编程[J]. 电脑编程技巧与维护, 2014(8):31-32,38.

[13] 张印. 基于VSTO的高校毕业论文格式化处理软件的设计与实现[D]. 北京:北京邮电大学, 2012.

[14] 张未未,吴宇峰,刘仁权,等. 基于VSTO技术的Office计时器插件的设计与实现[J]. 电子设计工程, 2016(11):31-34,37.

[15] 周顺,朱成彪,辛皓炜. 一种基于VSTO的Office操作题自动评分算法[J]. 电子制作, 2015(8):102-103.

[16] 刘艳平. 基于VSTO的Word文档格式检查插件的开发与研究[J]. 电脑知识与技术, 2016(26):106-108.

[17] 中国人民解放军总装备部. GJB 438B-2009, 军用软件开发文档通用要求[S].

 
李建波
《计算机与现代化》 2018年第05期
《计算机与现代化》2018年第05期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息 粤ICP备2023046998号