试题库成卷版面设计技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

试题库成卷版面设计技术
钟名春
摘要:本文根据现有试题库软件在生成试卷时版面布局不完善的问题,提出了一种成卷版面设计技术。

它使用的核心技术是VBA,通过编程实现自动排版和输出功能。

该技术同样适用于期刊、网上购物订单等的版面设计。

关键词:成卷版面设计 VBA 自动排版
A Technique of Test Paper Typesetting
Zhong Mingchun
(Shunde technical secondary school, Shude Foshan 528300) Abstract: This article raises design of test papers typesetting, because the problem of incomplete layout exists in test paper producing. It chiefly depends on the technique of VBA, and realizes automatically typesetting and strengthens the function of output. In fact, it can be used on other aspects of typesetting, such as journals, web orders and newspapers.
Key words: test paper producing,layout, VBA, automatic typesetting
1、引言
自从1996年底,国家计委正式立项批准计算机辅助教学软件研制开发与应用为“九五”国家重点科技攻关项目以来,各种试题库管理软件、教学软件和仿真软件相继推出。

这可以说是我们教育界的一大喜讯,教育和人才培训的各方人员都将受益。

相对于教学软件和仿真软件来说,在推广和使用的过程中,试题库管理软件都未能完全达到预期的目标。

[文献1]
究其原因,现有的试题库管理软件中,有些软件只是向用户提供成套的试题,或者是智能组卷,不允许用户自由地从试题库中抽取试题,使用户出题受到很大的约束;有些软件不提供试题的修改功能而显得功能不够完善;还有些软件生成的试卷没有考虑好版面格式,很多页面布局工作还需要人工手动设置,甚至与人工出卷一样费事;所有这些不足造成了用户对试题库管理软件的反应平淡。

我们曾经参与过试题库软件的开发,发现用户手动组卷、智能组卷和试题的修改这
些功能都比较容易实现,事实上现有的不少试题库软件具备这些功能;但组卷后试卷的文档生成和试卷版面设计却一直是比较困难,当然不少开发人员曾提出并设计过许多方案,可是收效都甚微。

因此,我们根据自己的实践和多年的教学经验,针对试卷版面格式的设置和控制,提出了一种先进的版面技术设计方案以解决多年来试题库软件在成卷版面设计方面的问题。

我们提出的版面设计技术主要采用VBA技术实现,其优点是通过对象编程实现试卷版面的设计。

试题库软件采用本技术后,生成试卷时版面格式可以根据试卷的具体内容职能地划分要素并自动设置和调整,而且生成的是一份标准的word文档,用户的使用将有更大的自由度。

所以,这种设计技术有很强的实用价值和较高的推广价值。

2.VBA技术简介
VBA技术是我们试题库成卷版面设计技术中最重要的技术。

由于商业机密的鸿沟,使它未能尽早在教育和人才培训的应用方面出现。

其实,如果我们能很好的利用它,不但有利于我们的试题库系统,还有利于其他教学的实践[具体参见文献2]。

以下,先对VBA技术作个说明。

VBA即Visual Basic for Applications,是Microsoft公司提出的一种用VB对Office应用程序开发的技术。

它把整个应用程序作为一个对象模型,例如对文档来说,WordXP就是一个对象了。

在这个对象中包含各种子对象模型,见图1;因此,VBA编程实际上是用VB语言对上述各个对象进行处理。

图1 Microsoft Word Visual Basic 对象模型Fig1 The module of Microsoft Word Visual Basic object
上图给出word对象模型。

下面对上图中的主要对象分述如下:
●Application对象指代的是 Microsoft Word 应用程序,使用过程中我们可以用Application对象创建一个Microsoft Word实体。

●Document 对象表示一篇文档,是Documents集合中的一个元素,Documents 集合包含 Word 当前打开的所有 Document 对象。

在实际设计中,用Documents的Add和Open方法可新建或打开文档。

●Selection对象代表窗口或窗格中的当前所选内容,若文档中没有所选内容,则代表插入点。

每个文档窗格只能有一个活动的 Selection 对象,并且整个应用程序中只能有一个活动的 Selection 对象。

我们在对试卷进行版面设计时,将用到Selection 对象的多种方法和属性来编辑文档中所选的内容。

●Option对象有许多方法和属性,利用这些方法和属性可实现 Word应用程序“工具”菜单“选项”对话框中的选项功能。

[具体参见文献3]
在试题库软件开发中,用VBA来实现试卷生成及其版面设计时,我们要用到的Microsoft Word Visual Basic对象及其方法属性远不止这些,上面的每个对象都包含许多子对象和方法属性,在此就不作过多的描述。

[具体参见文献4]
3.成卷版面设计技术实现方案
根据上述的分析和介绍,提出如下实现方案。

该方案中,数据的存储采用SQL数据库,生成的试卷以Microsoft Word作为工作平台,通过VBA和OLE技术调用Word的排版功能,实现自动排版和输出功能。

现有试题库管理软件的成卷版面设计实现方案多种多样,但效果都不够理想。

有的是生成的试卷不可以修改,连加一个空格或修改字体都不行,试卷保存后不能为其它系统(比如Word、WPS等)识别,只能从打印机上输出;有的是把每一道试题看作一个对象,然后逐题输出,生成的试卷版面布局很不合理,而且修改麻烦;而我们的成卷版面设计方案除了可以将试题中的文本和图形进行单独的处理,还可以图文混合排版。

我们的试题库成卷版面设计技术的特点是:
●能够对文本和图形分开处理。

●可以自动对试卷内容进行完美的版面排布且效率高。

●设计好的版面可重复使用并且能够根据试卷的内容自动调整。

实现方案的总体规划见图2。

Fig2 The view of the realize of the typesetting technique
使用试题库成卷版面设计技术实现应用系统的过程中,重点要把握数据库结构设计和版面设计,至于数据的入库过程比较简单,本文就不作描述。

现分述如下:
3.1 数据库结构设计
数据库的结构取决于实际应用系统所处理的数据,至于采用何种数据库来存储数据可根据实际情况来定,但应能满足系统的要求;例如数据中包不包含图形,数据可分为几类等等,我们可以根据这些信息来设计数据库的结构,比如需要分成多少个表来存储,每个表有多少个字段及各字段的类型和大小等。

本文提出用SQL数据库主要考虑到它安装和操作简易,查询快速,处理能力强,并且可以存储文本和图象。

3.2 版面设计
版面设计采用Visual Basic工具,VBA技术和OLE技术,并且结合Office平台。

实际上是针对Office平台用VBA和OLE技术进行开发,当然还要连接数据库并读取数据。

从数据库读取数据生成试卷时,试卷文本长度的统计和图象尺寸的检测一直是版面设计的难题,但我们发现利用VB的内置函数是很容易实现的。

具体检测的实现算法如下:
If rsquery.field(选取内容序列) is 文本 Then
intLength= Len(rsquery.field(选取内容序列))
Else
imgObj= rsquery.field(选取内容序列)
dbWidth=imgObj.width
dbHeight=imgObj.Height
End if
现给出试卷生成及其版面设计实现的算法及关键技术:
(1)用VBA调用Word对象模型,实现一个生成试卷对象的通用过程createPaper(),用此过程生成的试卷只是一个空文档。

Public Sub createPaper(para1,para2, …)
Documents.Add DocumentType:=wdNewBlankDocument
ChangeFileOpenDirectory para1
ActiveDocument.SaveAs FileName:=para2, FileFormat:=wdFormatDocument End Sub
说明:此过程的实现还要根据实际的要求而改变输入参数的个数,其中,参数para1是试卷存放的路径,para2是试卷的文件名,而FileFormat决定了生成的试卷是不是word文档。

(2) 设计试卷的版面格式,包括文本的格式化、文本的布局、图形的定位等,其中文字和图形的混合排版是关键所在;但是通过VBA技术调用Word的排版功能将很容易实现。

文本格式化和文本布局的实现如下,其功能是设置文本的颜色、加粗、下划线的线型和颜色;设置文本段落的右缩进量和首行缩进量。

Selection.Font.Color = wdColorRed ‘文本的格式化
Selection.Font.Bold = wdToggle
Selection.Font.Underline = wdUnderlineSingle
Selection.Font.UnderlineColor = wdColorBlue
WordBasic.UnderlineColor
With Selection.ParagraphFormat ‘段落格式化
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
.FirstLineIndent = CentimetersToPoints(1.16)
End With
With Selection.ParagraphFormat
.RightIndent = CentimetersToPoints(1.27)
.SpaceBeforeAuto = False
.SpaceAfterAuto = False
End With
●图象的插入和定位实现如下:
Selection.InlineShapes.AddPicture FileName:= "picturename", SaveWithDocument:=True
ActiveDocument.Shapes("picturename ").Select
Selection.ShapeRange.Left = CentimetersToPoints(6)
Selection.ShapeRange.Top = CentimetersToPoints(4)
●文字和图形混合排版实现的算法和关键技术。

我们可以根据实际的要求来制定文本与图形混排的规则。

本方案中图文混排的规则是当图形的宽度小于页面宽度的60%就进行图文混排,并且图形排在页面右边,距页面左边为页面宽度的60%,与上一段文字的距离为1cm,文字排在左边,与图形相距0.32cm。

这样就可以节省纸张,试卷的版面布局也比较美观。

实现的算法如下:If dbWidth< document.page.width*60% Then ‘dbWidth是图形的宽度,前面已经检测
ActiveDocument.Shapes("Picturename").Select
Selection.ShapeRange.RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
Selection.ShapeRange.RelativeVerticalPosition = wdRelativeVerticalPositionParagraph
Selection.ShapeRange.Left = CentimetersToPoints(document.page.width*60%) Selection.ShapeRange.Top = CentimetersToPoints(1)
Selection.ShapeRange.WrapFormat.AllowOverlap = True
Selection.ShapeRange.WrapFormat.Side = wdWrapBoth
Selection.ShapeRange.WrapFormat.DistanceTop = CentimetersToPoints(0) Selection.ShapeRange.WrapFormat.DistanceBottom = CentimetersToPoints(0) Selection.ShapeRange.WrapFormat.DistanceLeft = CentimetersToPoints(0.32) Selection.ShapeRange.WrapFormat.DistanceRight = CentimetersToPoints(0.32)
Selection.ShapeRange.WrapFormat.Type = wdWrapSquare
Else ‘如果图形的宽度大于或等于页面宽度的60%,图形占据整行。

ActiveDocument.Shapes("Picturename").Select
……
Selection.ShapeRange.WrapFormat.Type = wdWrapTopBottom
End if
具体效果如下:
普通试题库软件的排版效果采用本文版面设计技术的排版效果
图3 版面设计实现效果
Fig3 result of the typesetting design
上述算法是通过VBA技术去调用Word的排版功能来对成卷进行版面设计的,完全可以解决版面布局问题。

4.结束语
本文介绍的试题库软件成卷版面设计技术已得到实际应用,并取得预期的效果。

需要说明的是,这种版面设计技术虽然在本文中是以试题库成卷应用的方式提出,但该技术同样适用于期刊、论文集、杂志的版面设计;在网上购物公司的购物清单、客户反馈单等方面的应用亦值得推广。

参考文献:
1、岳剑波. 信息管理基础. 北京:清华大学出版社. 1999.11
2、 Mattew Harris ,任晓峰等译. Visual Basic for Applications. 北京:电子工业出版社. 1996.5
3、 Microsoft MSDN Technique Reference Book 2001
4、廖赤球, 廖启亮. MIS中的对象模型转换技术及其应用. 广州:华南理工大学学报,1999,27(5) 69-72
(此文发表在《机电工程技术》杂志02年第6期)。

相关文档
最新文档