试题库成卷版面设计技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

80试题库成卷版面设计技术钟名春摘要:本文根据现有试题库软件在生成试卷时版面布局不完善的问题,提出了一种成卷版面设计技术。它使用的核心技术是VBA,通过编程实现自动排版和输出功能。该技术同样适用于期刊、网上购物订单等的版面设计。关键词:成卷版面设计VBA自动排版ATechniqueofTestPaperTypesettingZhongMingchun(Shundetechnicalsecondaryschool,ShudeFoshan528300)Abstract:Thisarticleraisesdesignoftestpaperstypesetting,becausetheproblemofincompletelayoutexistsintestpaperproducing.ItchieflydependsonthetechniqueofVBA,andrealizesautomaticallytypesettingandstrengthensthefunctionofoutput.Infact,itcanbeusedonotheraspectsoftypesetting,suchasjournals,webordersandnewspapers.Keywords:testpaperproducing,layout,VBA,automatictypesetting1、引言自从1996年底,国家计委正式立项批准计算机辅助教学软件研制开发与应用为“九五”国家重点科技攻关项目以来,各种试题库管理软件、教学软件和仿真软件相继推出。这可以说是我们教育界的一大喜讯,教育和人才培训的各方人员都将受益。相对于教学软件和仿真软件来说,在推广和使用的过程中,试题库管理软件都未能完全达到预期的目标。[文献1]究其原因,现有的试题库管理软件中,有些软件只是向用户提供成套的试题,或者是智能组卷,不允许用户自由地从试题库中抽取试题,使用户出题受到很大的约束;有些软件不提供试题的修改功能而显得功能不够完善;还有些软件生成的试卷没有考虑好版面格式,很多页面布局工作还需要人工手动设置,甚至与人工出卷一样费事;所有这些不足造成了用户对试题库管理软件的反应平淡。我们曾经参与过试题库软件的开发,发现用户手动组卷、智能组卷和试题的修改这81些功能都比较容易实现,事实上现有的不少试题库软件具备这些功能;但组卷后试卷的文档生成和试卷版面设计却一直是比较困难,当然不少开发人员曾提出并设计过许多方案,可是收效都甚微。因此,我们根据自己的实践和多年的教学经验,针对试卷版面格式的设置和控制,提出了一种先进的版面技术设计方案以解决多年来试题库软件在成卷版面设计方面的问题。我们提出的版面设计技术主要采用VBA技术实现,其优点是通过对象编程实现试卷版面的设计。试题库软件采用本技术后,生成试卷时版面格式可以根据试卷的具体内容职能地划分要素并自动设置和调整,而且生成的是一份标准的word文档,用户的使用将有更大的自由度。所以,这种设计技术有很强的实用价值和较高的推广价值。2.VBA技术简介VBA技术是我们试题库成卷版面设计技术中最重要的技术。由于商业机密的鸿沟,使它未能尽早在教育和人才培训的应用方面出现。其实,如果我们能很好的利用它,不但有利于我们的试题库系统,还有利于其他教学的实践[具体参见文献2]。以下,先对VBA技术作个说明。VBA即VisualBasicforApplications,是Microsoft公司提出的一种用VB对Office应用程序开发的技术。它把整个应用程序作为一个对象模型,例如对文档来说,WordXP就是一个对象了。在这个对象中包含各种子对象模型,见图1;因此,VBA编程实际上是用VB语言对上述各个对象进行处理。图1MicrosoftWordVisualBasic对象模型Fig1ThemoduleofMicrosoftWordVisualBasicobject82上图给出word对象模型。下面对上图中的主要对象分述如下:Application对象指代的是MicrosoftWord应用程序,使用过程中我们可以用Application对象创建一个MicrosoftWord实体。Document对象表示一篇文档,是Documents集合中的一个元素,Documents集合包含Word当前打开的所有Document对象。在实际设计中,用Documents的Add和Open方法可新建或打开文档。Selection对象代表窗口或窗格中的当前所选内容,若文档中没有所选内容,则代表插入点。每个文档窗格只能有一个活动的Selection对象,并且整个应用程序中只能有一个活动的Selection对象。我们在对试卷进行版面设计时,将用到Selection对象的多种方法和属性来编辑文档中所选的内容。Option对象有许多方法和属性,利用这些方法和属性可实现Word应用程序“工具”菜单“选项”对话框中的选项功能。[具体参见文献3]在试题库软件开发中,用VBA来实现试卷生成及其版面设计时,我们要用到的MicrosoftWordVisualBasic对象及其方法属性远不止这些,上面的每个对象都包含许多子对象和方法属性,在此就不作过多的描述。[具体参见文献4]3.成卷版面设计技术实现方案根据上述的分析和介绍,提出如下实现方案。该方案中,数据的存储采用SQL数据库,生成的试卷以MicrosoftWord作为工作平台,通过VBA和OLE技术调用Word的排版功能,实现自动排版和输出功能。现有试题库管理软件的成卷版面设计实现方案多种多样,但效果都不够理想。有的是生成的试卷不可以修改,连加一个空格或修改字体都不行,试卷保存后不能为其它系统(比如Word、WPS等)识别,只能从打印机上输出;有的是把每一道试题看作一个对象,然后逐题输出,生成的试卷版面布局很不合理,而且修改麻烦;而我们的成卷版面设计方案除了可以将试题中的文本和图形进行单独的处理,还可以图文混合排版。我们的试题库成卷版面设计技术的特点是:能够对文本和图形分开处理。可以自动对试卷内容进行完美的版面排布且效率高。设计好的版面可重复使用并且能够根据试卷的内容自动调整。实现方案的总体规划见图2。83图2版面设计技术实现方案图Fig2Theviewoftherealizeofthetypesettingtechnique使用试题库成卷版面设计技术实现应用系统的过程中,重点要把握数据库结构设计和版面设计,至于数据的入库过程比较简单,本文就不作描述。现分述如下:3.1数据库结构设计数据库的结构取决于实际应用系统所处理的数据,至于采用何种数据库来存储数据可根据实际情况来定,但应能满足系统的要求;例如数据中包不包含图形,数据可分为几类等等,我们可以根据这些信息来设计数据库的结构,比如需要分成多少个表来存储,每个表有多少个字段及各字段的类型和大小等。本文提出用SQL数据库主要考虑到它安装和操作简易,查询快速,处理能力强,并且可以存储文本和图象。3.2版面设计版面设计采用VisualBasic工具,VBA技术和OLE技术,并且结合Office平台。实际上是针对Office平台用VBA和OLE技术进行开发,当然还要连接数据库并读取数据。从数据库读取数据生成试卷时,试卷文本长度的统计和图象尺寸的检测一直是版面设计的难题,但我们发现利用VB的内置函数是很容易实现的。具体检测的实现算法如下:Ifrsquery.field(选取内容序列)is文本ThenintLength=Len(rsquery.field(选取内容序列))ElseimgObj=rsquery.field(选取内容序列)dbWidth=imgObj.widthSQL数据库数据录入程序已进行版面设计的试卷VisualBasic工具VBA技术OLE技术Office办公平台试卷生成和版面设计程序打印或预览数据入库取数据84dbHeight=imgObj.HeightEndif现给出试卷生成及其版面设计实现的算法及关键技术:(1)用VBA调用Word对象模型,实现一个生成试卷对象的通用过程createPaper(),用此过程生成的试卷只是一个空文档。PublicSubcreatePaper(para1,para2,…)Documents.AddDocumentType:=wdNewBlankDocumentChangeFileOpenDirectorypara1ActiveDocument.SaveAsFileName:=para2,FileFormat:=wdFormatDocumentEndSub说明:此过程的实现还要根据实际的要求而改变输入参数的个数,其中,参数para1是试卷存放的路径,para2是试卷的文件名,而FileFormat决定了生成的试卷是不是word文档。(2)设计试卷的版面格式,包括文本的格式化、文本的布局、图形的定位等,其中文字和图形的混合排版是关键所在;但是通过VBA技术调用Word的排版功能将很容易实现。文本格式化和文本布局的实现如下,其功能是设置文本的颜色、加粗、下划线的线型和颜色;设置文本段落的右缩进量和首行缩进量。Selection.Font.Color=wdColorRed‘文本的格式化Selection.Font.Bold=wdToggleSelection.Font.Underline=wdUnderlineSingleSelection.Font.UnderlineColor=wdColorBlueWordBasic.UnderlineColorWithSelection.ParagraphFormat‘段落格式化.SpaceBeforeAuto=False.SpaceAfterAuto=False.FirstLineIndent=CentimetersToPoints(1.16)EndWithWithSelection.ParagraphFormat.RightIndent=CentimetersToPoints(1.27)85.SpaceBeforeAuto=False.SpaceAfterAuto=FalseEndWith图象的插入和定位实现如下:Selection.InlineShapes.AddPictureFileName:=picturename,SaveWithDocument:=TrueActiveDocument.Shapes(picturename).SelectSelection.ShapeRange.Left=CentimetersToPoints(6)Selection.ShapeRange.Top=CentimetersToPoints(4)文字和图形混合排版实现的算法和关键技术。我们可以根据实际的要求来制定文本与图形混排的规则。本方案中图文混排的规则是当图形的宽度小于页面宽度的60%就进行图文混排,并且图形排在页面右边,距页面左边为页面宽度的60%,与上一段文字的距离为1cm,文字排在左边,与图形相距0.32cm。这样就可以节省纸张,试卷的版面布局也比较美观。实现的算法如下:IfdbWidthdocument.page.width*60%Then‘dbWidth是图形的宽度,前面已经检测ActiveDocument.Shapes(Picturename).SelectSelection.ShapeRange.RelativeHorizontalPosition=wdRelativeHorizontalPositionPageSelection.ShapeRange.RelativeVerticalPosition=wdRelativeVerticalPositionParagraphSelection.ShapeRange.Left=CentimetersToPoints(document.page.width*60%)Selection.ShapeRange.Top=CentimetersToPo

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功