文档自动化

2024-10-11

文档自动化(通用10篇)

文档自动化 篇1

随着计算机技术的发展和计算机的普及使用,各种信息管理系统被应用,数据处理自动化极大地提高了工作效率。虽然多数信息管理系统都是基于数据库保存组织数据的形式开发的,但涉及普通文档形式保存数据的情况时,难免要利用文档编程技术实现数据处理的自动化。OFFICE文档对象编程在许多针对OFFICE文档的应用中被广泛使用,本文将介绍OFFICE对象编程的一般原理,并给出对EXCEL文档进行数据比对,EXCEL文档与WORD文档结合进行数据合成等实例的实现过程。各种信息管理系统多是针对前期需求分析开发的,当用户在系统使用中产生新的文档数据处理需要时,利用OFFICE文档对象编程进行简便的二次开发可快速满足需求。

1 文档数据自动处理的原理

一般不同类型的文档都有各自的文档格式。在程序员角度,如果要编程实现程序读、写或处理文档中的数据,必须要了解文档格式。对记事本文件、C语言源码文件等一些格式简单的字符流文档,无论用何种编程语言,一般函数库中的普通文件处理函数就可实现文件读写操控,但OFFICE文件却不同,其文档格式较复杂,不是简单的字符流,其商业版权也使得其文档格式并不对外公开。幸而微软公司提供了OFFICE编程接口。

伴随着微软技术发展,OFFICE文档对象编程技术形式不断变化。早期为了让应用程序之间自动获取彼此的最新数据,微软推出对象的链接与嵌入技术(Object Linking and Embedded,OLE),应用程序的数据交换提高到“对象交换”,程序间可获得彼此的应用程序对象,从而可直接使用彼此的数据内容。但OLE1.0对象使用上还有许多限制,到OLE2.0阶段,OLE自动化、OLE控件、OLE文档使应用程序间能更好的相互协调工作。

OLE自动化允许一个应用程序自身暴露一些可编程对象给其它程序的应用程序,被使用对象的一方是自动化服务器,利用并操纵自动化服务器提供功能的一方叫自动化控制器。微软还为其桌面应用程序(尤其是Microsoft Office)推出了通用自动化语言——VBA(Visual Basic for Application),利用VBA或其他编程语言都可以针对OFFICE文档进行编程,实现文档数据的自动化处理。

在EXCEL中利用VBA语言操纵单元格中的内容,进行计算或数据处理时,EXCEL本身既是OLE控制器又是OLE服务器,若进行创建WORD文档等工作,则WORD是OLE服务器,EXCEL是自动化控制器。如用VC或VB等编程语言在程序中创建并编辑一个Excel工作表,则开发的程序是自动化控制器,EXCEL则是自动化服务器。从实现上讲OLE自动化是利用面向对象编程思想的深化,以com组件技术实现。

无论以何种形式针对OFFICE文档进行面向对象编程,一般都是通过创建或获得OFFICE文档对象,通过对对象属性、方法等的编程,实现程序对OFFICE文档数据的自动处理[1-5]。虽然随着各种新技术和新名词的出现,VBA、OLE自动化等技术看似已陈旧,但实际上在很多场合下,其数据处理的自动性及开发快速的特性使得其仍有较大的应用价值。

2 利用VBA进行EXCEL中的数据对比

VBA不能独立使用,需要一个宿主应用程序,微软的OFFICE软件套装中均支持VBA,并提供VBA编辑器方便开发。一般为了开发方便,用户可以先录制符合条件的宏,然后调整修改VBA代码,编写适合自己需求的自动化程序,实现对OFFICE文档数据的自动处理[1]。

虽然Office应用程序随着时间的推移已经发生了演变,不可避免地提供不同的对象模型,但仍保存了一些一致性,VBA对象模型从上到下有着一般性的层次结构:

1)顶层为Application对象。Word、EXCEL、PPT等都有自己的Application对象。Application对象代表了整个应用。

2)不同的Application对象下有不同的子对象。如EXCEL中是Workbooks集合对象,而WORD则主要是Documents集合对象。

3)再向下,EXCEL有Workbook对象代表Microsoft Excel工作簿,Worksheets集合对象代表指定的或活动工作簿中所有工作表对象,再到Worksheet对象代表一张工作表,再通过Range和Cells到单元格。类似地,WORD中深化各个Document对象,然后深化各个Range对象。通过各种细节属性及方法的使用完成对文档的细节操控。

以银行工作为例,业务数据一致性比对经常发生,每次抽检的数据字段可能不同,现有的信息系统可能无法提供这种临时性的功能。此时就可以利用VBA在文档中快速完成比对。如比较EXCEL文档中两列账户信息,筛选出B列中没有出现在A列中的账户有哪些。此时EXCEL没有合适的公式可用,但通过VBA中编程实现循环对比即可快速完成,示例代码如下:

3 VB编程实现WORD文档数据自动整合到EXCEL

下面讨论的实例基于这样的应用:员工招聘时每个员工都有一个单独的Word文档,但现有的办公系统不提供该格式WORD文件的处理,为了方便统一汇总和管理所有新员工信息,需要自动批量处理这些WORD文档,将文档中需要的数据统一提取到EXCEL文件中。

File System Object对象模型,是微软提供的专门用来访问计算机文件系统的,结合FSO和VBA对象编程可以批量处理OFFICE数据文档。FSO模型并不是VBA的一部分,它以COM组件的形式提供,包含在脚本类型库中。在VBA编辑器中使用时,可选择"Tools"菜单下"References...",在出现的对话框中选择"Browser..."选中COM对象文件C:WindowsSystem32Scrrun.dll。在其他开发平台中需通过相关的库引用设置菜单引入相应的项(如VB开发平台需在工程|引用中添加microsoft scripting runtime)。

将多个WORD文档数据批量提取到EXCEL的实现过程主要是通过VBA对象操控EXCEL文件,利用FSO循环处理文件夹下的批量WORD文件,这些WORD文件有相同的格式和数据表,利用VBA的WORD文档对象获取每个文件中的详细信息,然后写入到EXCEL文件中。如果没有复杂的界面要求,完全可以直接在EXCEL文件中实现。本例利用VB开发平台设计了一些简单的用户交互界面,但本质上仍然是FSO和VBA技术的结合使用,关键代码如下:

设置要提取的WORD文档表格中的单元格的行列值:

循环提取所有招聘文档中表格里的数据:

为了从汇总的EXCEL文件中再次方便地查看原始数据,可再通过对象编程,给EXCEL单元格建立超链接链接到源WORD文件。

4 结束语

对OFFICE文档数据进行处理,可以通过嵌入VBA的OFFICE文档实现;微软还提供了VSTO(Visual Studio Tools for OFFICE),基于Visual studio平台将应用程序编程和VBA的OFFICE对象编程结合起来,实现更丰富的OFFICE文档应用的二次开发;或者对现有的信息系统进行二次开发。各种方式开发代价不同,都能实现文档数据自动处理,其本质原理都是利用各种OFFICE对象模型实现的自动化数据处理。在工作中可以根据不同的应用环境和情况选择最合适的方式提高数据处理自动化程度,提高我们的工作效率。

参考文献

[1]王贵,石仙.利用VBA在Excel和Word中完成复杂的数据引用[J].电脑知识与技术,2011,24(7):5908-5010.

[2]刘永平.基于VBA的毕业设计文档自动生成系统[J].西安邮电学院学报,2011,2(16):46-48.

[3]余艳艳,周明刚.VC++实现Excel操作自动化的方法研究与应用[J].企业技术开发:学术版,2010,29(2):7-9.

[4]周静,袁方,袁江鹭,等.基于VSTO的Office二次开发[J].福建电脑,2011(9):22-23,36.

[5]桑银邦,王成良.XML数据交换在Office二次开发中的应用[J].计算机工程,2010,22(36):78-80.

文档自动化 篇2

1.修改注册表法

只要进行下列操作就可以自动删除文档记录:单击“开始→运行”,输入“regedit.Exe”打开系统注册表编辑器,进入主键“HKEY_USERSDEFAULTSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer”,在右边窗口新建一个名为“NoRecentDocsHistory”的DWORD值,并将其值设置为“1”,然后重启电脑即可。

2.批处理文件法

笔者研究认为,在文档中显示的只不过是存放在Windows的Recent文件夹下的一些快捷方式,只要我们在开机时自动地将它们全部删除就可以保证一些项目以后不显示了。注:以下操作假设Windows安装在“C?Windows”下,如果你的系统安装在不同的文件夹下,请自行修改。拷贝C:WindowsCOMMANDDELTREE.EXE文件到C盘根目录下,用“记事本”打开C盘根目录下的“AUTOEXEC.BAT”文件,加入以下内容:@echooffEchoDeletingrecentDirectorydeltree/yC:Windowsrecent>nulEchoMakingrecentDirectorymdC:WindowsrecentEchoStartingWindows...重新启动你的计算机,

3.使用系统工具法

除了上面的手动更改之外,我们还可以利用系统工具来实现文档记录的自动删除功能,而这个程序就是在Windows98安装光盘中的TweakUI工具。我们只要将安装光盘插入光驱中,进入“ToolsReskitPowertoy”文件夹,找到tweakui.Inf文件,然后单击鼠标右键,再选择关联菜单的“安装”即可。接着在“控制面板”中双击“TweakUI”图标便可启动它了,单击IE选项卡,在Settings(设置)列表中确认“Cleardocumentruntyped-URLhistoryonexit(在退出时清除文档、运行程序、链接的URL历史纪录)”项的为选中状态,再单击“Apply(应用)”即可,以后系统就不会在文档菜单中显示历史记录了。

4.隐藏文档菜单

Word宏应用,自动存文档 篇3

认识宏和自动宏

在Word2007中,可以通过创建宏自动执行频繁使用的任务。宏是一系列命令和指令的组合,可以作为单个命令执行来自动完成某项任务。可以使用宏录制器来录制一系列操作,也可以通过在Visual Basic编辑器中输入Visual Basic for Applications代码来从头开始创建宏。创建宏时,通过为一个宏赋予某个特殊的名称,就可在执行某项操作(例如启动Word或打开文档)时自动运行宏。Word将下表中的名称识别为自动宏,或称“auto”宏。

显示“开发工具”选项卡

若要在Word2007中使用宏,需要先显示“开发工具”选项卡,操作步骤如下:

1单击“Microsoft Office按钮”,然后单击“Word选项”。

2单击“常用”,然后在“使用Word时采用的首选项”之下选中“在功能区显示‘开发工具’选项卡”复选框。

3单击“确定”按钮。

此时,功能区中就会出现一个名为“开发工具”的选项卡。

创建关闭时保存文档宏

由上表可知,AutoClose宏在关闭Word文档时会自动运行,那么只要赋予该宏保存文档的功能,则当关闭Word时,该宏将被自动执行,也就说是在关闭Word前,Word会自动执行了“保存”命令。创建该AutoClose宏的操作步骤如下:

1启动Word2007并打开一篇已有文档,然后在“开发工具”选项卡上的“代码”组中,单击“录制宏”。

2在“宏名”框中,键入宏名称,在此请键入“AutoClose”。如果键入的新宏的名称与Word2007中的内置宏名称相同,则新宏操作将替换内置宏。若要查看内置宏列表,请在“开发工具”选项卡的“代码”组中单击“宏”,在“宏的位置”列表中,单击“Word命令”。

3在“将宏保存在”框中,单击要将宏保存在其中的模板或文档,为了使该宏对所有文档有效,请单击“所有文档(Normal.dotm)”。

4单击“确定”按钮开始录制宏。如果AutoClose宏已经存在,单击“确定”按钮后,Word将弹出一对话框,询问“是否替换已有的宏?”。如果选择了“是”按钮,则开始录制该宏,新录制的操作将代替原宏中已有的操作。如果不想以新录制的宏替换原有宏,请看下面的“四、编辑已有的AutoClose宏”。

5执行要包含在宏中的操作。对该实例而言,请单击快速访问工具栏中的“保存”按钮。如果是一篇新Word文档,在单击“保存”按钮后,会打开“另存为”对话框,以便用户对文档进行命名。这也是我们在步骤1中打开一篇已有Word文档的原因所在。

6在“开发工具”选项卡上的“代码”组中,单击“停止录制”,以结束录制操作。

经过以上操作后,当你编辑完成Word文档后,没有保存即退出Word时,Word将会运行AutoClose宏,执行保存文档的操作。如果是新建文档,会弹出“另存为”对话框。

编辑已有的Autoclose宏

如果Word中已有AutoClose宏,在不想以新录制的宏替换原有宏的情况下,只需对原有的该宏进行编辑,增加相应的指令即可。编辑AutoClose宏的操作步骤如下:

1在“开发工具”选项卡上的“代码”组中,单击“宏”。

2在“宏的位置”框中,选择“所有的活动模板和文档”,在“宏名”框中,单击“AutoClose”,然后单击“编辑”按钮,打开“Microsoft VistudBasic”编辑窗口。如果不需要某个宏了,可以选择该宏后,单击“删除”按钮将其删除。

3在“代码”窗口的AutoClose宏中,加入如下一行指令:ActiveDocument.Save。

4在“文件”菜单中,单击“保存Normal”,然后单击“关闭并返回到MicrosoR Word”命令,关闭“MicrosoftVisual Basic”编辑窗口,返回到Word编辑窗口。

笔者以上所述旨在以实例说明如何使用Word的自动宏。你可根据自己的喜好和需要,选用Word提供的5个自动宏,为自己定制其他的自动服务,以提高工作效率和质量。

文档自动化 篇4

由于办公自动化系统承载了办公业务活动的整个过程, 文件材料的起草、审批、成文、制发、归档等环节都是在办公软件的模块化管理下自动完成的, 网络办公平台系统记载了整个文件的传输过程, 这一文件的处理过程也就是电子文档的生成过程。这种在办公自动化条件下诞生的电子文档有着与传统纸质文档不同的新特点, 即文档管理自动化、文档存储数码化、文档传输网络化、文档形成公开化、文档处理一体化、文档利用在线化等。

1.文档管理自动化。办公自动化条件下电子文档的管理, 是采用先进的计算机与网络技术以及办公系统软件, 将办公业务的流转过程完全设计在网络办公平台系统中, 这样不仅将文件内容电子化, 而且将文件的起草、审核、签发、成文、立卷归档、利用等整个文档生命运动周期的形成过程自动化, 即文档管理的全过程自动化。

2.文档存储数码化。传统纸质文档因其承载物是纸质, 对之的存储有着特定的要求和固有的格式。在实际的操作中, 一般要严格按照纸质文档归档的要求及规定, 分类整理组卷, 然后统一归入相应的文档管理机关, 并置于有着祛湿、保温设备且带有标识的库房文档橱柜中。而电子文档则是借助计算机和网络技术, 按照一定的格式, 将文字、图形等信息转换为数码或符号, 并通过相应的软硬件设施及技术来识别、传输与利用, 其存储形式是将电子文档的内容转化为一系列的数码和符号, 从而实现电子文档存储的数码化, 这样不仅可以节省大量的存储空间和资源, 而且可以存储大量的信息和资料。

3.文档传输网络化。办公自动化条件下生成的电子文档有别于其他直接存储在磁盘、光盘等介质上的电子文档, 而是通过电子计算机与网络技术, 将文档内容直接存放在办公自动化系统专门设置的特定区域之中, 其鲜明的特点就是文档传输的网络化。这种基于办公自动化的文档传输网络化过程, 不仅使文档传输变得更加便利和快速, 而且也有利于对文书和档案工作进行统筹规划, 以及对电子文档的科学管理和应用。

4.文档形成公开化。在自动化环境下形成的文档, 文件办理人员和档案管理人员能利用网络技术充分发挥各自的业务优势来监控文件办理的全过程。因此, 电子文档与纸质文档相比, 不同之处在于文档的流转形成过程公开化。即文书办理人员可以通过不同的界面查看各级人员办理文件的状况, 文件管理部门能根据文档的办理情况加以督查和催办, 提高办文的效率和质量;档案管理人员凭借网络平台对系统里已办理完毕的文件数据可以随时鉴别和归类, 既便于各承办部门的整理和立卷、归档, 还利于在网络平台中随时对各承办部门的立卷归档工作的跟踪和指导, 切实提高案卷的质量。

5.文档处理一体化。文件是档案的来源, 档案是文件的归宿, 文件和档案是同一载体在不同运行阶段上价值变化的体现, 公文处理过程中两者紧密相关。网络办公平台系统将文书工作和档案工作视为一个有机整体, 即通过对系统前端控制的设置, 能将文件的整个运行过程置于系统的全程监控之下, 从而真正实现电子文件与电子档案二者之间的紧密衔接, 进而达到办公自动化条件下电子文档处理的一体化目标。因此, 网络办公平台系统所具备的全程自动化运行特征推动了电子文档处理的一体化进程, 不仅有利于文书工作和档案工作的无缝对接, 而且有利于实现对文书工作与档案工作的全过程管理。

6.文档利用在线化。电子文档由于是依靠网络技术完成的, 因而对其的利用具有共享性、多用性和交互性等优势, 即在网络技术的支撑下, 用户可不受时间、空间的限制, 在权限控制的范围内实现对文档的在线自动检索与利用;另外, 通过网络的在线功能, 还能实现网络办公平台系统与其他信息系统的互相连接, 为用户提供全面而充分的信息资料。文档利用在线化的优点在于最大限度地实现了相关资源的共享, 极大地提高了电子文档利用的质量与效率。

如何让Word自动保存文档 篇5

通过我们的设置,可以让文件在一个时间段后自动保存,

那么如何在office Word中如何设置,小编在这里为大家介绍一下:

1、点击左上角的office按钮->Word选项->保存选项,这样会弹出如下窗口:

文档自动化 篇6

关键词:动态文档发布,自动测试,模拟

0 引言

对于大多数人来说,都会有这样的客户体验:去银行或者保险公司办理业务,或者接收他们的保单宣传,我们所面对和接收的都是一张张一样的表单,然后上面有一些空白的表格或者下划线,然后将客户的信息填上去。这样的做法有以下两个缺点:

(1)客户体验差。所有客户拿到的都是一样的表单,因为考虑特殊的情况,表单里面的空白的地方都会比较大,所以一般会出现大片空白的区域。

(2)对于每种不同的客户或者不同的业务会需要不同的表单,对于客户信息变动的情况,需要人工完成,比较繁琐。

为了更好的客户体验,越来越多的公司倾向于采用动态打印技术。这样每个客户接收到的文档或者打印件都是定制化的,这样就能克服以上缺点而做到:

(1)客户体验优。所有客户拿到的文档都是定制化的,表单里没有需要填空的地方,客户的数据都会被程序动态地植入表格模板里,就好像专门为客户定做的文档。

(2)我们可以在模板中定义一些规则,然后根据客户数据来采用相应的规则。例如,美国各个州的法律是不一样的,我们可以在编辑文档的时候就定义规则:如果客户是A州的,就用A条文,如果是B州的,就用B条文。这样当生成文档的时候,程序会根据当前客户是属于哪个州的,动态地加入这一段条文,而不需要人工的判定。并且,当客户从A州搬到B州,我们只需要更新一下客户的数据,客户下次就能拿到更新的正确的文档。

1 动态文档发布系统

有了如上的需求,很多公司都加入了开发动态文档发布系统的行列。对于动态文档发布,简单说起来,一般的步骤是:1)建立文档模板;2)运行时,装载客户数据进入模板;3)拼接文档;4)排版;5)输出前处理;6)输出成不同格式的文档;7)发布和归档。

动态文档发布系统可以使客户高性能制作并发送设计精美、高度个性化的沟通材料,从合同、保险单、大批量的账户关系维护通知单,到定制的推广资料、商业信函等。客户可以在该系统平台上,运用自己熟悉的文档开发软件,如Word、Adobe Indesign、Dream Weaver,开发出文档模板,并根据系统提供的插件进行逻辑的设置。然后,该模板就能被送往系统,跟随提供的客户数据而批量地生成客户需要的定制文档。接着,生成的文件可以通过不同的途径,例如,邮件、e-mail、手机短信等方式发送到客户,使客户有良好的用户体验。

2 自动化测试的要求

对于这样一个复杂的系统,它的主要客户是一些保险公司和银行,而它的主要产出是保单和合同。同时,合同和保单都是很严肃和很严谨的文档。客户需要的是他们的客户在客户数据没有改变的情况下,得到的是一贯的体验。

但是同时,动态文档发布系统本身又是一个不断发展和改善的系统。它拥有非常复杂的排版逻辑,并且每个版本的升级都会有大量的新功能和新逻辑被引入,这样的逻辑改变如果哪怕有一点点的差错,原来客户的整个文档可能就会面目全非。如果老的客户需要升级这些新功能的话,我们需要保证客户得到一贯的体验。也就是说,他们用旧的版本系统生成的文档和在新的版本系统生成的文档要保持一致,除非新的版本生成的更好,并得到客户的同意。

这样,为了达到上面的目标,我们需要在新版本发布前,运行一些老客户的文档(挑选一些很典型的客户文档),并且一个个和老版本生产的文档进行比较。但是我们不能把这个过程推到新版本发布之前才做,因为那个时候整个项目已经积累了很多的不同点,很难追查到源头并加以改正。所以我们需要把这个过程提前,并且频繁地去检查。

由于需要频繁的检查,并且文档的比较是个很繁重的体力活,所以自动测试将会是很好的方法,它不仅能够节省绝对的人力,而且能够保证绝对的准确,不会被人为因素干扰。

我们可以把这个自动测试集成到日常的打包系统中,每次打包后就可以自动地完成运行,比较和生成报告。

但是,我们不能在打包服务器上每次都去部署新的系统,因为那样太笨重了,并且会让环境问题和我们系统本身的问题经常性地纠缠不清。所以,我们需要自己建立一套轻量级的架构去承载这个测试过程:

(1)我们的系统是建立在基于应用服务器的EJB架构上的,并且EJB的主要操作是基于对数据库的操作,但是我们对于该自动测试的系统的要求是,对外部的依赖越少越好,因为这样的话,我们就能很方便地在各个相关程序员和测试人员以及配置人员之间进行部署和实施,所以我们希望他不要依赖应用服务器和数据库。

(2)我们要明确输入源和输出源,并且能够提供一些简单并且方便的配置,而且在很小代价的前提下,能够在不同的输入源和输出源之间随意切换。

(3)结果必须是可以有办法鉴别的,并且鉴别结果是能够很容易取得和方便查阅的。

3 设计方案

根据上面提出的三个要求,我们将通过分析我们的系统来提出我们的解决方案。

3.1 分析

对于这个系统来说,我们首先需要解决对于应用服务器,也就是对于EJB的依赖。为了达到这个目的,我们必须对系统的主要模块进行分析,来想办法如何解除依赖。

3.1.1 系统主要模块介绍

我们可以看看此系统的一个特别简化同时又很典型的流程:

首先介绍一下每个术语:

BDT:Business document template,商业文档模板。在这里我们定义一些规则,然后会跟客户数据关联选择具体的规则。

Customer Data:客户数据。XML格式记录特定客户的数据,然后根据这些客户数据,动态产生不同文档。

ASL:Assembly List,装配列表。由BDT和客户数据装载生成,里面记录的是一个个根据规则而选出来的最终文档片段(text piece)。

Text Piece:文档片段。在客户端定义,并存储在数据库端的文档片段。

MSO:微软自己定义的HTML格式Microsoft HTML,然后我们在里面加入一些我们自己定义的标记。

Styled Doc:式样文档。我们定义的一个格式,其实就是一些结构类,会对文档的各个内容、样式、布局进行描述。

DIF:Document Independent Format,独立文档格式。StyledDoc经过CE(composition)排版的结果就是DIF。它是一个页面级别的概念,告诉你什么时候生成一个新页面,多大,在哪里用什么字体写些什么字,在哪里放一个什么样的图片。

PDL:Page Description Language,页面描述语言。我们需要生成的最终结果,就是那些用页面来表示文档的语言,例如,Word、PDF、AFP、Postscript等等。

从图1可以看出,我们的EJB主要用在对数据库的操作上。对于数据库的操作,主要是对数据模板(BDT)的提取,

然后和本地客户数据进行整合,进而得出需要真正从数据库取出数据的组合(ASL),最后进行后面的排版(CE)、计算,生成各种不同类型的文档。

3.1.2 解耦数据库

既然我们要去除EJB和数据库的束缚,我们能不能绕过去呢?进一步分析,我们得到,数据模板在和客户数据装载(Assemble)后会在数据库里生成一个xml文件,用来描述最终会用到的具体的存在于数据库中间的文本片段。而这个xml文件,我们称之为ASL。我们试想,如果我们用一个办法,直接生成我们要用到的ASL文件,那么我们是不是就可以绕过EJB和数据库了呢?

答案是一半肯定,一半否定。首先,我们的确能绕过EJB的应用,它主要用于assemble这个阶段。但是光有ASL是没有用的,因为我们还需要通过ASL去数据库里取得所有的文本片段去做整合(Merge)。那么我们能不能把输入进一步地往后面推,推到Merge以后呢?答案是不能。首先来说Merge的输入也就是文本片段会有很多,他们之间的关系很复杂,这些都是记录在ASL里面,并且,Merge本身就是一个比较容易出问题的模块,是我们做这个Test Client要重点模拟和测试的模块,所以我们只能另想办法。

这里我们大概介绍一下通过ASL去数据库取文本片段的过程。这个过程其实比较简单,因为逻辑方面的运算已经在Assemble的过程中处理完成,这里的任务是根据ASL里面的一个个的文本片段ID去数据库里取出相应的数据来进行后续的流程。既然是这样的一个过程,我们决定尝试通过本地文件来模拟数据库记录。我们可以把数据从数据库里取出来,按照一定的规则,给它们命名为本地的一个个文件,然后在我们的测试框架中重载以前的去数据库取文本片段的方法为去本地的文件夹里取。这样的确是可行的,因为:

(1)我们的目的是验证我们的文档历史的保真度(Fidelity)的问题,那么我们的文档的文本片段是不会有所改变的。所以我们可以把它们放心转移到本地,而不用担心更新问题。

(2)文件放到本地,能减少传输上的消耗,并且如果把方法进行重载,是代价最小和最自然的一件事情,并且能最大限度地利用原来的代码。

(3)经过一些小小实验,我们发现经过很小的改动,我们可以把数据库的文件按照一定的规则改写到本地。这些都可以通过写一些小程序来实现。以后有新的文档,都可以用这个方法来实现,简单而易用。

3.1.3 输入和输出

在去除EJB和数据库的束缚的过程中,我们得到了我们的输入方式,那就是ASL+Text Pieces。输出文件当然很简单了,我们选择PDF,这个是我们主要的打印格式,当然,我们可以方便配置生成其它的格式文件,但是对于自动比较,由于我们现在的工具只支持PDF的比较,所以,对其它的格式文件输出,我们暂时不能提供自动比较。

3.2 框架方案

有了输入和输出,以及明确的需求,我们给出框架的解决方案:

图2自动测试框架(参见下页)

(1)把整个过程分为输入、过程中、输出、输出后。

(2)对于配置,采用XML,并且在XML里提供对输入、输出、以及中间的过程的配置。

(3)对于输入,我们定义一个接口,对于这个接口的实现将会是各个不同的输入方式,对于目前来说我们是支持ASL+Text pieces。但是我们以后会支持另外的输入方式。然后对于所有的输入接口,我们定义一个中心的中间输出,我们叫它IDoc。它实际上是输入和发布的中心,输入都要转成这个我们定义的中间结果,然后输出都需要从这个中间结果进行加工。

(4)对于输出,我们可以把它们同样配置在XML里面。并且对于最基本的输出例如PDF,我们可以把它作为默认的一个输出,而不需要每次进行配置。

(5)对于中间过程,我们配置了一些拦截器,这些拦截器以IDoc为中心,设置了publish前和publish后的拦截器,也就是说,在这里我们可以对publish前和publish后进行一些配置。比如,在开始前我们可以开始计时,结束后结束计时,这样我们可以测试一些效率方面的例子。

(6)对于输出,我们对于PDF输出,我们要实现它和自动比较工具的一个集成,也就是生成完PDF后,在配置要求进行比较的情况下,自动调用PDF比较工具对输出结果和标准进行比较,然后得出结果,并且生成HTML结果表格,然后通过Email给相关人员进行发送。

3.3 用例

当整个系统运行起来后,操作步骤如下:

首先,简单来说,我们会提供一些默认的XML配置,包括用例存放路径、输入方式、输出方式、发比较结果邮件会发给哪些人等等进行默认配置。因为这些东西会很少改动,当然改动的时候,我们重新配置就行。然后我们把需要运行的输入,即ASL+Text Pieces放到一个配置的路径里,然后用名字去区分不同的用例。然后我们通过XML配置我们的输入格式、输出格式,以及需不需要对结果进行比较、需不需要发邮件等等选项。当这些配置配完以后,我们给它起一个唯一的用例名,然后在程序里将这个用例名作为参数运行就能使整个过程自动完成。对于程序员,我们每次提交关键代码,都会先运行一下这个框架程序,然后查看自动生成的测试报告。如果发现问题,及时改正。而对于配置管理员来说,他们这个过程用ant工具配置在打包脚本中,然后我们就可以在每次打包时,自动地运行我们预先设置的用例。并且,生成文件后,程序会自动对生成的PDF文件进行比较,并将结果整理发出邮件。相关人员会通过Email收到比较结果,在上面可以通过超链接很方便地点选那些比较不对的文档,然后通知程序员进行改正。整个过程由于都是由机器在后台快速运行,少了人工的干扰,所以既提高了准确率,又提高了效率。

4 结论

由于文档发布系统的客户对于不同系统版本间文档一致性的高要求,使我们必须要提供一个长久的机制保证这个一致性。而要保证这个系统的一致性,我们提出了一个轻量级自动测试的方案。这里所说的轻量级,只是说该框架下运行方便,不需要受应用服务器和数据库的约束,但是理论它上提供了文档发布系统同样的功能和行为。实际上在整个过程中,我们尽量调用原先系统的程序,但是在解除对于服务器和数据库的依赖方面,我们通过仔细分析原来的动态文档发布系统各个模块的前提下,采用了用本地文件模拟数据库的方法,通过重载方法实现了对于数据库的解耦。该框架提供了强大的可配置功能,通过简单的XML设置,我们可以对整个过程进行配置,灵活实现不同的功能组合。

在未来,我们还会不断完善这个框架,例如会提供更多的输入选择,提供可视化的配置,提供尽量准确的诊断功能帮助程序员方便定位错误,并且根据动态文档发布系统的升级而相应提供更多的配置和功能。

参考文献

[1]刘寅虓.系统分析师之路[M].北京:电子工业出版社,2005.

文档自动化 篇7

1、办公自动化定义

办公自动化(OA:OFFICE AUTOMATION)(以下简称OA)就是采用Internet/Intranet技术,基于工作流的概念,使企业或政府部门内部人员能够方便快捷地共享信息,高效地协同工作;改变过去复杂、低效的手工办公方式,实现迅速、全方位的信息采集和处理,为企业的管理和决策提供科学依据。

2、在OA中应用标准化的必要性

OA可以和一个企业或政府部门的业务结合得非常紧密,甚至是定制的。因而可以将诸如信息采集、查询、统计等功能与具体业务密切关联。操作人员只须点击一个按钮就可以得到想要的结果,从而极大地方便了领导的管理和决策。

从实施OA的角度来看,政府部门和企业的不同在于:企业工作的本质是生产而政府工作的本质是服务。OA缩短了生产的周期,减少了人力和物力的投入,在一定程度上降低了生产失败的风险机率。而政府部门则利用OA提高办事效率,加强决策能力。

从投资OA的角度来看,政府部门和企业的不同在于:企业投资重点放在提高效率所能带来的经济收益,而政府投资重点则放在对社会服务能力的提升方面。两者之间是微观与宏观的差别。这也说明了OA在宏观和微观领域都能得到充分的应用。

按照经济学的观点,任何一个过程的发生都可以建立起对应的一个投资/收益模型。如何利用有限的投资来换取最大的收益?这里就要使用标准化的管理方法。标准化的定义是:“在经济、技术、科学及管理等社会实践中,对重复性事物和概念,通过制定、发布和实施标准,达到统一,以获得最佳秩序和社会效益。”通过上述定义可以看出,“通过制定、发布和实施标准,达到统一”是标准化的本质和基础。“获得最佳秩序和社会效益”则是标准化的目的。是我们要追求的效果。项目实施是一个系统工程,涉及到的可变因素以及不可控因素都很多。因此,应该有一个科学的方法作指导,来严格规范实施过程,规避不可控因素造成的影响并降低到最低程度,以期达到最好的结果。

3、项目文档标准化管理的必要性

项目文档管理,是指在一个系统(软件)项目开发进程中将提交的文档进行收集管理的过程。通常,文档管理在项目开发中不是很受重视,当发现其重要性时,往往为时已晚。整个项目可能因此变得管理混乱,问题产生后无据可查。文档管理对于一个项目的顺利进行起着至关重要的作用,其关键性不容忽视。因此本文以OA项目实施的阶段为线索,从OA项目供需双方的角度把每个阶段要编写的文档用标准化的要求来描述,提出一个适当地针对OA项目的文档编写模型。

二、OA项目阶段文档编制格式

第一阶段:实施前期调研阶段

《可行性分析(研究)报告》是项目初期策划的结果,它分析了项目的要求、目标和环境;提出了几种可供选择的方案;并从技术、经济和法律各方面进行了可行性分析。由OA项目供方提出,可作为项目决策的依据。具体格式和说明参见表1:

第二阶段:实施准备阶段

《项目开发计划》由OA项目供方提出,内容应该包括各部分工作的负责人员、开发的进度、开发经费的预算、所需的硬件及软件资源等。具体格式和说明参见表2:

《软件需求说明书》对所开发软件的功能、性能、用户界面及运行环境等做出详细的说明。它是在用户与开发人员双方对软件需求取得共同理解并达成协议的条件下编写的,也是实施开发工作的基础。由OA项目需方提出。该说明书应给出数据逻辑和数据采集的各项要求,为生成和维护系统数据文件做好准备。具体格式和说明参见表3:

《详细设计说明书》由OA项目供方提出。描述了计算机软件配置项(CSCI)的设计。包含设计决策、体系结构设计和实现该软件的详细设计。具体格式和说明参见表4:

第三阶段:项目建设阶段

《开发进度报告》由项目供方提出。编制目的是及时向有关管理部门汇报项目开发的进展情况,以便及时发现和处理开发过程中出现的问题。一般地,开发进度报告是以项目组为单位固定周期编写的,如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开发进度报告将以分项目组为单位按周期编写。具体格式和说明参见表5:

《软件测试说明》由OA项目供需双方根据模拟的使用环境共同提出。描述执行计算机软件配置项CSCI、系统或子系统合格性测试所用到的测试准备、测试用例及测试过程。具体格式和说明参见表6:

《软件测试报告》由OA系统供需双方组织的测试组周期性提出。对计算机软件配置项CSCI、软件系统或子系统、或与软件相关项目执行合格性测试的记录。具体格式和说明参见表7:

第四阶段:切换准备阶段

《软件用户手册》(SUM)描述手工操作该软件的用户应如何安装和使用一个计算机软件配置项(CSCI)、一组CSCI、一个软件系统或子系统。它还包括软件操作的一些特别的方面,诸如:关于特定岗位或任务的指令等。具体格式和说明参见表8:

第五阶段:项目验收阶段

项目开发总结报告由项目供需双方共同提出。项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发成果以及对整个开发工作的各个方面的评价。具体格式和说明参见表9:

小结

本文从整个OA项目前期调研、实施准备、投资建设、切换准备、项目验收五个过程中所要使用的文档入手,提出了一个标准化的内容编写模式。从整个过程来看,这不仅仅是编写上的要求,更是对文档内容的标准化描述。内容反映出应用上的需求,应用决定了技术的实施与进步,技术推动了生产力的发展。因此,用标准化来约束管理OA软件项目文档的实施是可行且十分必要。

摘要:本文从项目文档编写的角度入手,分析了OA办公自动化项目开发中标准化管理的必要性和可行性,同时根据国家标准要求提出了一个适当地针对OA项目的文档编写模型。

文档自动化 篇8

一个Word文档的结构特性分为以下几方面: (1) 页面设置, 包括页面边距设置, 页眉、页脚设置, 纸型设置。 (2) 段落格式, 包括段落文字的字体、字号、字的颜色、特殊字形效果、行距、字间距、段落间距与缩、行距、分栏等。 (3) 表格, 包括表格行列数、行高列宽、表格内文本、表格的边框与底纹等。 (4) 图片, 包括插入的艺术字、插入和图文框和文本框等等对象的特性。

一、页面设置的阅卷

页面设置信息由Pagesetup对象获得。Pagesetup对象的LeftMargin属性表示页面的左边距, 加RightMargin属性表示页面的右边距, TopMargin属性表示页面的上边距, BottomMargin属性表示页面的下边距, FootMargin属性表示页面的页脚间距, HeadMargin属性表示页面的页间距, 它们的单位都是磅。PaperSize属性表示页面的纸型。分栏设置信息由TextColumn对象获得。PageSetup对象的TextColumns属性指定分栏属性Count属性指定分栏的栏数, Linebetween属性指定分栏是否有分隔线, Evenly属性指定分栏是否设置为栏宽相等SpaceAfter属性指定分栏的宽度。

二、段落格式的阅卷

段落格式又可以细分为三类:字体设置, 包括设置文字的字体、字号、字的颜色、特殊字形效果, 段落间距设置, 包括行距、字间距、段落前后间距对齐与左右缩进、段落对齐方式, 分栏设置, 包括分栏数, 栏宽设置, 分隔线设置。字体设置信息由Font对象获得。Font对象的Name属性表示段落中文字的字体, Size属性表示段落中文字的字号, Color属性表示段落中文字的颜色, Bold属性表示段落中文字是否为粗体, Italic属性表示段落中文字是否为斜体, Underline属性表示段落中文字是否有下划线。段落设置由Paragraph对象获得, 代表整个Word文档的Document对象有一个Paragraphs属性, 它表示文档中所有Paragraph对象的集合, 每个Paragraph对象表示文档中一个段落。Paragraph对象的LeftIndent属性表示段落的左缩进, RightIndent属性表示段落的右缩进, SpaceBefore属性表示段落的段前缩进, SpaceAfter属性表示段落的段后缩进, LineSpacing属性表示段落的行间距, FirstLineIndent属性表示段落的首行缩进, 它们的单位都是是磅。

三、表格的阅卷

表格设置信息由Table对象获得, 代表整个Word文档的Document对象有一个Tables属性, 它表示文档中所有Table对象的集合, 每个Table对象表示文档中一个表格。Table对象的Columns属性表示表格的列集合, Rows属性表示表格的行集合, BottomPadding属性表示表格中所有单元格的内容下面的间距, TopPadding属性表示表格中所有单元格的内容上面的间距, Left Padding属性表示表格的单个单元格或所有单元格的内容左侧的间距, RightPadding属性表示表格的单个单元格或所有单元格的内容右侧的间距, Spacing属性表示表格的单元格之间的间距。Borders属性表示表格的边框集合, Shading属性指定表格的底纹格式。

四、图片、艺术字、图片的阅卷

图片格式也可以人为分成三类:图片格式, 包括插入图片文件的路径, 图片的高、宽, 艺术字格式, 包括艺术字的样式、形状、字体、字号、字的颜色、特殊字形效果, 文本框格式, 包括在文本框中输入的文字, 文本框的高、宽、背景色、边框色、边框线条粗细。

图片格式信息由Shape对象获得。Document对象有一个Shapes属性, 它表示文档中所有Shape对象的集合, 每个Shape对象对应一个图形。在WORD文件中的图形对象有多种类型, 包括图片、艺术字、图文框和文本框等都属于图形对象, 需要加以区分再分别处理。用Shape对象的Type属性可以区分不同的图形对象。图片对象的Type属性值为3。Height属性和Width属性分别表示图片的高和宽, 单位是磅[1]。

艺术字格式的信息也由Shape对象获得。艺术字对象的Type属性值为15, PresetTextEffect属性指定“艺术字”的样式, 此属性值对应于“艺术字”库对话框中的格式 (从左到右, 从上到下进行编号) , PresetShape属性指定“艺术字”的图形样式, Text属性返回选定部分或区域的无格式纯文本, FontName属性表示艺术字的字体, FontSize属性表示艺术字的字号, FontBold属性如果为True, 则将指定的“艺术字”的字体格式设为加粗, FontItalic属性如果为True, 则将指定的“艺术字”的字体格式设为倾斜。

文本框格式的信息也由Shape对象获得, 文本框对象的Type属性值为17, Height属性和Width属性分别表示文本框的高和宽, 单位是磅, TextRange属性返回一个Range对象, 此对象表示指定的文本框的文本, Fill属性表示文本框的填充效果对象, ForeColor对象的F属性表示文本框的填充色, Line属性表示文本框的边框效果对象, Line对象的Weight属性表示文本框的边框明细, 单位是磅字号, Line对象的ForeColor属性表示文本框的边框颜色[2]。

下面是文档排版阅卷的主要代码[3]:

摘要:在计算机基础WORD文档排版考试中, 必须要实现自动阅卷。其中包括页面设置、段落格式、表格、图片的阅卷的实现方法, 以及主要代码。

关键词:自动阅卷,页面设置,段落格式,表格,图片

参考文献

[1]金炳尧, 马永进, 骆红波.Word文档中若干图片类对象的分析与自动阅卷的实现.浙江师范大学学报 (自然科学版) .2003, 26 (4)

[2]D.F.Scott;余江林, 詹晓军, 周宗丽, 等译.MICROSOFT OFFICE2000开发指南.北京:中国水利水电出版.2002

文档自动化 篇9

CorelDRAW是矢量绘图与图文混排软件中的佼佼者, 广泛应用于广告设计、产品包装设计、出版等领域。有关CorelDRAW的证书考试十分普及, 若这些考试采用人工阅卷, 将占用大量人力资源, 拖延阅卷时间, 影响成绩及时公布。因此, 对CorelDRAW考试实现自动阅卷很有必要。

有关自动阅卷系统设计和开发十分普遍, 如文献[1]实现了PowerPoint文档自动阅卷功能, 文献[2]设计与实现了XML自动阅卷系统, 文献[3]利用COM自动化技术, 设计与实现了Word文档的自动阅卷。本文提出一种面向CorelDRAW文档的通用自动阅卷系统GAMS。GAMS集出题、答题及阅卷为一体, 能够实现在给定考试大纲范围内出题, 并使用统一的通用阅卷模块进行批阅。GAMS不仅实现CorelDRAW文档的自动阅卷, 而且还弥补了单一阅卷系统中存在的阅卷模块依赖于试题的不足。所谓阅卷模块依赖于试题, 即一个阅卷模块只能批阅一道试题, 试题的更新必将导致阅卷模块的更改, 增加了开发工作量, 并容易造成阅卷系统的不稳定。

使用GAMS系统不仅实现CorelDRAW考试的自动化, 而且在平时教学过程中, 也可以利用该系统出题, 供学生练习, 并由系统自动批改, 以提高教学效率[4]。

1 自动阅卷关键技术

1.1 CorelDRAW对象模型分析

微软Windows系列操作系统中采用了微软COM (组件对象模型) 技术[5], 该技术能够使各应用程序通过组件对象相互访问。软件开发人员可以使用COM创建可重用组件, 连接相关组件构造应用程序, 并可以利用Windows操作系统提供的各种服务。CorelDRAW应用程序也正是采用微软COM技术。在文献[6]CorelDRAW对象模型中, 顶层的Application对象代表整个CorelDRAW应用程序, 下层的Documents集合对象代表一个CorelDRAW应用程序中所有打开的文档, 通过Document对象可以访问某个文档。Document对象下层的Pages集合对象代表一个CorelDRAW文档中所有页, 通过Page对象可以访问文档中某页。CorelDRAW就是在这些页上绘制图形的。使用Page对象下的Shapes集合对象可以访问该页上的所有图形对象, 某个图形对象的细节使用Shape对象来访问。如Shape对象下Curve、Ellipse、Rectangle对象可以用来访问曲线、椭圆、矩形的细节, Fill、Outline对象用来访问图形填充、图形轮廓的细节, Type属性用来确定各种图元的类型等。

1.2 图元类型的测试

CorelDraw内部的图元类型是由cdrShapeType[6]定义。cdrShapeType是个枚举类型, 其中每个元素指定一个图元类, 如元素cdrRectangleShape表示矩形, cdrEllipseShape 表示椭圆, cdrPolygonShape表示多边形等。测定图元类型, 可以使用Page对象下的FindShapes方法直接查找指定类型的图元。如要查找文档中当前页 (ActivePage) 上的矩形对象, 其伪代码如下:

sr=Document.ActivePage.FindShapes (Type:=cdrRectangleShape)

其中sr为ShapeRange[6]类型对象, 若找到, sr返回当前页上所有矩形对象;找不到, sr为空。

但是, 由cdrShapeType定义的图元是个大类, 在实际绘制中还要细分为小类, 如矩形类分为矩形、正方形、圆角矩形、圆角正方形等, 椭圆类分为椭圆、圆、扇形、弧形等。测定图元小类, 需要附加其它测试项。如已测出图元类型为椭圆, 可以使用Shape.Ellipse.Type属性进一步来测定, 若该属性值为cdrEllipse, 则是椭圆;为cdrArc, 则是弧形;为cdrPie, 则是扇形。cdrEllipse、cdrArc和cdrPie是枚举类型cdrEllipseType中的元素。若要判定圆, 则要使用Shape.Ellipse.VRadius 和Shape.Ellipse.Hradius属性, 这两个属性值相等即为圆。

1.3 图元处理的测试

CorelDRAW的图形处理能力强, 可以给图元施加丰富的处理效果, 如加图形轮廓、进行图形填充和施加特效等。经分析, 它们的检测方法相似。首先是要确定处理效果所对应的对象, 然后使用该对象下各属性来测定相应的处理选项即可。如要测定图形轮廓, 可以使用Shape.Outline.Type = cdrOutline, 要进一步测定轮廓线颜色、轮廓线宽度、轮廓线样式、终止端头样式、起始端头样式等选项, 可以使用Shape.Outline下的Color、Width、Style.Index、StartArrow.Index、EndArrow.Index等属性。当一个图元施加了多种处理效果时, 每种处理效果可以分别测试, 互不影响。

2 通用自动阅卷方案

2.1 图元类型的测试方案

在通用自动阅卷中, 必须能够测试考试大纲涉及的所有图元类型。下面以计算机操作员中的CorelDRAW考试大纲为例。表1是大纲所涉及的部分图元类型, 为了方便数据存储和程序编写, 将各图元进行统一编码, 编码采用2位数字, 第1位表示图元大类, 第2位表示图元小类, 如“11”表示矩形类中的圆角矩形。表1中的测试方法是测定各图元类型的要点, 是编程的主要依据。其中“比对标准答案文档”, 指的是有些图元的测试需要具体参数, 如多边形的测试就得给出边数, 若将这些参数单独储存会带来不便, 这时制作一份标准答案 (CorelDRAW文档, 包含有被测试的图元) 存入试题库中, 测定时通过与标准答案中相应值作比对即可。

2.2 图形处理的测试方案

CorelDRAW图元处理十分复杂, 为了有效实现图元处理的通用检测, 根据考试大纲要求对其进行一定的简化处理。简化后的图元处理属性可分为三级。为了方便测试, 对各图元处理的属性进行统一编号。每级使用2位数字, 共使用6位数字。如020000表示图元填充, 020400表示图元填充下的底纹填充样式, 020401表示底纹填充样式下的底纹库。使用这种层次编码能够方便数据储存, 且程序算法简洁。经全面分析测试, 制定图元处理的测试方案, 参见表2。

3 系统构建

3.1 系统总体结构

为了实现CorelDRAW文档的通用自动阅卷及其考试的全面自动化, GAMS系统集成了出题、答题、阅卷三个子系统, 各子系统下又划分为若干个功能模块, 其结构如图1所示。

出题子系统 完成试题录入及评分标准的制定等功能。

答题子系统 完成考生登录、试卷生成、答题及结果回收等功能。

阅卷子系统 完成试卷的自动批阅、成绩处理等功能。

3.2 数据库设计

GAMS系统的数据库中主要设计了图元类型表picture、图元处理表opration、试题表questions、考生信息表student、试卷表exam 等数据表。其中, 试题表questions的设计最为关键, 其设计是否合理将直接影响试题数据的存储及编程算法的复杂程度。文中综合考虑各种因素, 设计出简洁实用的试题表questions, 如表3所示。它既做到方便数据存储, 又能使编程算法简单化。

其中, markProperty字段记录自动阅卷用到的各图元类型及处理属性的编码, markValue字段记录各图元类型及处理属性的得分值。这二个字段存储了一道试题涉及的所有图元类型及处理属性的相应信息, 出题时使用它们存储评分标准, 阅卷时使用它们进行判分。其值的存储方式要有利于阅卷时的提取, 于是构造markProperty字段值存储方式如下:按图元分组, 即一个图元为一组, 不同组之间使用“/”分隔, 若“/”后无信息, 表示组结束;每一组内图元类型编码排在最前面, 后跟若干个图元处理属性, 它们之间用“, ”分隔。如值“23, 010300/10, 020402, 030200/”, 表示共有二组, 第一组表示绘制弧形 (编码:23) , 并对其设置轮廓线宽度 (编码:010300) , 第二组表示绘制矩形 (编码:10) , 并对其设置底纹列表 (编码:020402) 和立体化效果 (编码:030200) 。markValue字段值存储方式同markProperty, 并与其值相对应, 如“2, 1/1, 1, 3/”, 表示绘制弧形 2分, 设置轮廓线宽度1分, 绘制矩形1分, 设置底纹列表1分, 立体化效果3分。

3.3 主要功能模块实现

(1) 制定评分标准模块

用户使用本模块提供的操作界面, 可以方便地指定要绘制的图形、处理效果及其对应的得分值, 然后由本模块自动实现评分标准的制定。设用户指定绘制图形及其处理的名称分别为PicName、OprName, 得分值记录在Vstr中, 评分用属性序列、评分用分值序列分别记录在markPstr、markVstr中。其实现的伪代码如下:

(2) 自动阅卷模块

自动阅卷模块是本系统的核心模块, 它实现了对所有试卷的自动批阅。其实现的伪代码如下:

其中函数marking实现对一道试题批阅。传入参数answerDocument为标准答案 (CorelDRAW文档) , testDocument为被测试试题 (CorelDRAW文档) , markProperty为评分用属性序列, markValue为评分用分值序列, 传出参数score为得分。该函数实现的难点是对试题中所有图元及处理进行测试, 由于图元及处理分多级, 并且每级数目大, 这里采用多级Case语句嵌套来解决, 其形式如下:

4 结 论

GAMS集出题、答题及阅卷三个子系统为一体, 实现了CorelDRAW考试过程的全面自动化, 同时也可以用于CorelDRAW教学过程中的练习和测验, 提高教学效率。该系统成功应用于温州市职业技能鉴定中心的计算机操作员 (中级) 考试中, 通过对近万名考生考试结果的真实测试, 出题子系统能够在考试大纲范围内方便、正确地出题, 考试子系统能够顺利完成考生登录、试卷生成、答题及试卷回收, 阅卷子系统能够准确、快速地实现自动阅卷。

参考文献

[1]詹国华, 姚争为, 张量.PowerPoint文档自动阅卷功能的实现[J].计算机工程与应用, 2002, 38 (16) :102-104.

[2]屈志杰, 郑衍衡, 韩冬.XML自动阅卷系统的设计与实现[J].计算机工程, 2003, 29 (16) :189-191.

[3]汤克明, 陈崚.Word自动阅卷系统的设计与实现[J].计算机工程与应用, 2008, 44 (35) :69-72.

[4]Koike H, Akama K, Morita H, et al.Using an Automatic Marking Sys-tem for Programming Courses[C]//Proc.of ACM Special InterestGroup on University and College Computing Services (SIGUCCS) Fall2006 Conference, 2006:173-177.

[5]Microsoft Corporation.Component Object Model Technologies[EB/OL].2005.http://www.microsoft.com/com/default.mspx.

文档自动化 篇10

Microsoft公司的Word文字处理软件功能强大、使用方便,是世界上使用范围最广的文字处理系统。由于Word软件的复杂性,有时会出现编辑好的文档突然不能打开,系统提示文档被破坏,即使使用Word自带的文档修复功能也无济于事。Word文档使用了复合文档格式,不能通过使用其它编程软件调用普通的文件操作函数来对文件操作。这就会给文字处理者带来不可弥补的损失。

为了防止Word文档被破坏而造成较大损失,编辑时必须定期把文档保存另一个备份,当原文档被破坏时,可以利用备份文档。经常保存备份是一件非常麻烦的事情,并且有时很容易忘记保存文档备份。能不能让Word在保存文档时,自动保存文档的备份呢?答案是肯定的。本文利用VBA编程实现了在Word文档保存时自动保存文档备份的功能。

二、自动保存文档备份原理

1、VBA语言

VBA (Visual Basic for Application)是基于Visual Basic for Windnows发展而来的新一代标准宏语言,VBA就是VB在各种应用程序上的应用,它是Office套装软件中的一个组件,具有跨越多种Office应用软件并且控制应用软件对象的能力,VBA提供了面向对象的程序设计方法,提供了相当完整的程序设计语言,VBA继承了VB的开发机制,又具有和VB相似的语言机构,它们的集成开发环境IDE(Intergrated Development Environment)也几乎相同,而且经过优化的VBA还可以专门用于Office的各应用程序之中,VBA的项目可由使用VBA宿主(包括Excel,Word,PowerPoint)的Office应用程序来调用。

2、VBA程序在Word中的加载

在Wod中与每个内部命令都有一个相关的VBA过程与之对应,例如,文件打开命令的过程名为FileOpen。如果在VBA编辑器中定义了与内部命令过程名相同的VBA过程时,在正常调用该过程时,Word将运行你创建的过程,而不是内置的过程。这种加载机制,为我们利用VBA修改Word内部命令执行过程提供了方便。在本文中主要修改文件的保存命令,自定义过程名为FileSave。

3、备份文档的命名

在文档每次保存时,把当前的文档保存到一个备份文件中,备份文件的名字形式为“原文档名字”+“·”+数字,其中数字根据保存的备份个数自动递增。如果当前文档被破坏,或想看以前编辑的内容,直接把备份文档重命名即可。

4、自动保存文档备份实现原理

实现文档自动保存备份的VBA过程的原理框图如图1所示。首先,判断当前文档是否是Word刚建立还没有保存的文档,如果是就调用Word缺省的保存命令,如果不是则进行下一步,搜索当前目录下有无该文档的备份文件,并且判断有几个备份文件,假设为n个。然后设置备份文件的文件名,把当前文档另存为备份文件,再把当前文档另存为原文件名。这样就实现了文档每次保存时都会保存一个备份,并且根据备份文件名可以确定是什么时候保存的备份。

三、自动保存文档备份实现过程

1、查找Word中内置命令的过程名

在本文中是查找“保存”命令的过程名。在Word中,按ALT+CTRL+数字键盘上的加号(+)键,然后用鼠标选择要查看的菜单项,在本文中是查看菜单“文件->保存(S)”,Word将显示“自定义键盘”对话框,对话框将显示出“命令”列表中的内置过程的名称,如图2所示。

2、建立自定义过程

用自己的过程替换内置Word过程有以下三种方法:

(1)在任何标准模块中,创建一个与要替换的过程名称相同的VBA过程。例如,如果创建名为FileSaveAs的过程,那么在正常调用该过程的时候,Word将运行您创建的过程而不是内置FileSaveAs过程。

(2)使用要替换的内置命令的名称,创建模块并对其命名。然后将名为Main0的子例程添加到该模块,并将自己的自定义代码添加到该过程。

(3)使用“宏”对话框创建新的过程。为此,指向“工具”菜单上的“宏”,然后单击“宏”。在“宏”对话框中,在“宏的位置”中单击“Word命令”。“宏”名称列表将显示数百个内置Word过程。通过单击列表中的过程名称,并在对话框底部读取“说明”框中的内容,可了解这些过程可以执行的任务。当找到要修改的命令后,单击它并使用“宏的位置”选择要在其中保存过程的模板或文档。然后单击“创建”按钮,即可创建一个与内置命令使用相同名称的VBA过程。

3、编制VBA过程

在VBA工程中输入以下代码:

在过程UserSave中实现了自动保存文档备份大部分功能,在FileSave过程中,把ActiveDocument.Save语句进行注释,即不执行保存菜单原有的功能。如果想取消自动保存文档备份功能,把FileSave过程中的UserSave语句进行注释,去除ActiveDocument.Save语句上的注释即可。

四、自动保存文档备份程序的注意事项

1、由于前几年宏病毒的泛滥,Word默认的宏安全性级别为“高”,即只运行可靠来源签署的宏,未经签署的宏会自动取消。所以,必须把宏安全性设置为“中”,可以选择运行哪些宏。或者对VBA程序进行数字签名,并把自己的数字证书添加到可靠发行商列表中。

2、在选择宏的位置时,可以选择为Normal.dot(共用模板),这样在编辑每个文档时都会自动保存备份文档。并且,如果想和其他人共享该程序,直接将Normal.dot文件覆盖到其他电脑上即可。

3、长时间使用Word进行文字处理时,利用自动保存文档备份会产生很多备份文件,可以利用Windows的搜索功能删除这些备份,在搜索窗口输入"*.Doc.*",则可以搜索整个目录下的所有文档备份文件。

五、结束语

Word通过VBA具有强大的扩展功能,用户可以利用VBA本身简单易学及良好的编程帮助与提示的特点,轻松实现特定的功能,提高文字处理效率。本文只是一个简单的应用,还可以利用VBA创建窗体、菜单等实现较为复杂的应用。

参考文献

上一篇:进行初三英语复习下一篇:红花如意丸