基于VSTO的Microsoft Word文件标准化检查工具的实现

2020-06-03 10:52常芸瑜穆兰芬刘明明
仪器仪表用户 2020年6期
关键词:人机界面控件工具

张 旭,常芸瑜,穆兰芬,刘明明

(中国核动力研究设计院 核反应堆系统设计技术重点实验室,成都 610213)

0 引言

在企业经营过程中,需定期进行内外部审查,确保质量保证体系的有效运行。审查的内容会包括企业文件的“标准化”管理,即相关文件是否按程序文件规定的文件格式、编号要求,经过了规定的校审核和签署,并达到了规定的质量要求等。

企业在内外部审查的过程中,发现了文件的一些问题,包括签署的时间错误、工程号错误、字体错误、物理量单位的误用、格式混乱等。这些文件标准化的问题在一定程度上给企业产品的质量带来了影响,为产品带来质量隐患。

基于上述情况,有必要开发一种文件质量检查的软件来辅助提高文件的质量,保证文件的一致性、准确性。

1 系统设计

1.1 需求分析

通过调研,文件标准化包含以下方面的内容:文件封面、签署页、页面页脚的标识,各级设计人员的资格是否符合有关规定,是否按规定进行编制、校对和审批,文件编号、名称、版本、密级、保存期限等标识,各章、节的标题与正文中相应章节的标题是否一致,正文中的字体、字号、图表等是否符合统一等。

经统计,在检查上述内容时,常见的文件质量问题有:

1)字体字号错误。

2)图表顺序号错误或格式错误。

3)缩进行距等格式有误。

4) 物理单位使用错误,比如“4 ~20mA 电流信号”应写作“4mA ~20mA 电流信号”等。

5)根据语境判断英文字母与数字是否混用(如“o”“l”与数字“0”“1”)等。

除了要解决上述问题外,软件工具还应操作简单,尽可能简化使用流程与人机界面,能快速地查找出文件的标准化问题。

1.2 同类产品及研究现状调研

目前有一些文件格式排版工具类产品,如“Word 自动排版软件”“排版大师”等,不同的软件工具实现的功能略有差异,但基本大同小异,其功能有:自动处理段落、表格、图形、页眉页码、自动检查编号顺序等。上述软件都是基于Windows 平台的Word 文档进行排版操作,适用于论文、标书、设计文件等的自动排版。上述功能基本可免费下载使用,部分功能还需付费使用,如:整理上下标m2、H2O;统一kg、km,Pa,kPa、kw、kWh、kV 等单位符号,规程规范标准名称对比等。

上述各种软件有两方面的欠缺。其一,检查规则不完全可配置,针对不同的格式规则的灵活性不够;其二,一些种类的检查工具需要将文件上传至互联网,对于不能上传至互联网的内部文件,不能使用该软件。这两个问题都是不可避免的严重问题。

图1 软件总体处理流程图Fig.1 Software overall processing flowchart

另有一种格式排版软件,其设计思路是,该工具的人机界面包含多个文本框,分别代表一级标题、二级标题、正文等,用户将文字写入该工具的各种文本框,再由该工具将每个文本框按其类型制作成Word 文档。该方法对文档格式识别不是由软件读取Word 文档实现的,所以具备很高的准确性,但是这也给用户使用带来了不方便,既不直观,也带来了附加工作量。同时,在文件升版过程中,由于局部的增删影响文件章节顺序时,用户需重新向该工具的人机界面文本框粘贴文档内容,带来了使用的不便。

目前在该领域的学术研究方面,主要包括基于XML方法及使用VBA 方式对Microsoft Word 软件进行开发的研究[1-3]。

1.3 软件设计

为实现上述功能需求,软件功能分为两部分,即页面基本信息检查和智能检查。其中,页面基本信息检查内容包括:字体字号的检查、图表顺序号和格式的检查、页眉页脚的检查、正文中缩进、行间距的检查等;智能检查内容较为繁杂,而且可以随时更新标准库,包括:常见的英文缩略语检查,通过上下文语境,进行英文字母“o”“l”与数字“0”“1”的误用情况的检查,km 为单位数值达10万以上的提醒等。

软件的总体流程如图1 所示。

在文件表观检查工具中制订文件表观样式,形成标准Word 样式库,其中涉及模糊判断的标准,形成正则表达式集合。文件编写人员编写完文件,选择合适的样式库,进行文件的标准化检查,检查包括页面基本信息检查与正则匹配检查,错误结果将批注提醒作者修改。

1.4 技术实现

1.4.1 技术路线

VSTO(Visual Studio Tools for Office)是一套可创建自定义Office 应用程序的Visual Studio 工具包。基于VSTO 技术,可使用Visual Basic 或C#语言扩展Office 程序的功能。基于更加专业和强大的Visual Studio 开发环境,可实现比Office 中的Visual Basic Editor 界面更友好、功能更全面的程序开发。VSTO 具有可视化的设计器、更安全的托管代码扩展等一系列优点。因此,选用VSTO 作为文件标准化检查工具的技术路线。

图2 新建项目Fig.2 New project

图3 新建可视化设计器功能区模板Fig.3 New visual designer ribbon template

图4 可视化设计器功能区设计图Fig.4 Visual designer ribbon design

图5 缩进检查功能流程图Fig.5 Indentcheck function flowchart

1.4.2 界面设计与制作

在Visual Studio 中新建项目,选择Office 模板中的“Word 2010 外接程序”模板。如图2 所示。

然后增加人机界面,人机界面以Word 软件中增加标签页的形式实现。添加可视化设计器功能区模板,如图3所示。

通过拖拽控件进行菜单栏的设计,可选择的控件包括按钮、组、勾选框、文本框等多种。本项目的人机界面功能需求较为简单,仅需要按钮控件作为不同功能的选择,将具体检查功能的入口设置在按钮控件的点击事件中,另外使用组控件将功能按钮分类。可视化设计器功能区如图4 所示。

1.4.3 功能实现

以C#语言为例,引用动态链接库的方法如下:

using Word = Microsoft.Office.Interop.Word;

using Microsoft.Office.Tools.Ribbon;

Application 对象可代表Word 应用程序,定义并获取Application 对象的方法如下:

Word.Application app = Globals.ThisAddIn.Application;

具体检查功能由对应的按钮Click 事件触发。“基础项综合检查”与“高级项综合检查”是多项检查功能的结合,实现方法类似。

以缩进检查功能为例,介绍检查功能的处理逻辑。缩进检查功能流程图如图5 所示。

缩进功能指正文的每个段落要缩进2 个字符,实现该功能最主要的难度在于排除不需要考虑缩进要求的对象。不需要考虑正文缩进格式的项目包括各级标题、图表名称(如“图1 图名”)、只有一个图片、Visio 对象或SmartArt图形的段落等此类对象、带有编号或项目符号的对象。

图6 软件效果图Fig.6 Software rendering

在进行缩进检查时,逐段遍历段落对象,源码示例如下:

foreach (Word.Paragraph para in app.ActiveDocument.Paragraphs){……}

考虑到非首次使用检查功能的情况(如已检查出错误,再次检查修改后的文件),为避免用户需要在修改格式后还必须手动删除报错的批注,在进行检查前,应删除文件中此类报错批注,然后再进行检查。

排除不需要考虑缩进要求的对象时,图表名称可使用正则表达式判断,源码示例如下:

public static bool CheckPictureTableNameReg(string text)

{

Regex Re = new Regex("[图|表][0-9]+[ ]");return Re.IsMatch(text);

}

在确定该段落应进行首行缩进检查后,进行检查,对于判断缩进不符合规范的段落对象增加批注“缩进错误”,源码示例如下:

if (para.Format.FirstLineIndent != 24)

{

object comment = "缩进有误";

para.Range.Comments.Add(para.Range, ref comment);

}

图7 检查结果示意图Fig.7 Schematic diagram of inspection results

2 实例分析

加载后Word 软件标签栏会增加一个标签,效果如图6所示,点击下面各种按钮,对应执行各组功能。

检查结束后,格式错误之处会被批注提醒,如图7 所示。

3 结论

基于VSTO 技术的文件标准化检查工具,能够以Microsoft Word 软件中标签页插件的形式呈现检查功能的人机界面,既能实现基本页面格式的检查,也可实现部分能智能化检查功能。该工具实现了标准化检查的需求,同时满足了使用简便、人机界面简洁的要求。对于提高文件质量、文件严肃性、工程安全具有重要意义。

猜你喜欢
人机界面控件工具
波比的工具
基于.net的用户定义验证控件的应用分析
波比的工具
准备工具:步骤:
关于.net控件数组的探讨
“巧用”工具
CBTC系统车载人机界面的设计与实现
CTCS-3级列控车载人机界面的系统设计与实现
达人机界面DOP-B10VS511
简谈使用BoundsChecker进行计算机联锁系统人机界面软件可靠性测试