张之光
(内蒙古京隆发电有限责任公司 设备部,内蒙古 乌兰察布市 012100)
基于VB的Word文档图形数据处理方案
张之光
(内蒙古京隆发电有限责任公司 设备部,内蒙古 乌兰察布市 012100)
基于上海古籍出版社出版,马承源主编的《上海博物馆藏战国楚竹书(1~6)文字编》进行简帛文字信息化处理的尝试,在Microsoft Visual Basic语言平台下,对Access数据库中的图形、文本进行转换,使之以word文档的形式重现,便于编辑和查阅,对图像图形处理研究亦有深刻的研究价值。
VB;Access数据库;Microsoft Word文档;图片
上海古籍出版社出版,马承源主编的《上海博物馆藏战国楚竹书》出版之后,引起了广泛关注。对于这批文字的信息化处理显得非常迫切,只有把这些文字信息化处理之后才能尽快公之于众,吸引大批研究者进行广泛研究,促进研究的发展,认识的深化。在学术界诸家从文字学、思想史等角度广泛研究时,笔者不揣简陋,意欲关注这批文字的数字化进程,为学界提供检索、查验之便利。
概述:将简文字数据库中的信息按照具体要求转换到Microsoft Word文档中进行再编辑和排版,形成可供发表或出版的电子文档形式。
本数据库是针对《上海博物馆藏战国楚竹书(1~6)文字编》开发的,本数据库既实现了字形的形体类聚,又实现了简文的文本检索。既穷尽性地、高保真地整理出土简帛文字的字形,进行文字资料汇编;又可以通过数据库强大的检索功能,了解目前学术界的研究成果,跟原书的注释相对照,进行进一步研究。非常有利于文字学界学者的查检。表1数据库结构如下:
说明:
字段“隶定”表示简帛上楚文字对应的目前使用的汉字;
字段“图片”表示楚文字图片在磁盘上的路径,如:E:SHB1s01001W02.bmp。因没有楚文字字库,在出版或发表楚文字相关论文时,楚文字一般以图片形式出现。这些图片均是从《上海博物馆藏战国楚竹书(1~6)文字编》的扫描图中剪切而来。
字段“读为”表示简帛上楚文字的读法;
字段“简号”表示楚文字所在简帛的编号;
字段“位号”表示楚文字所在简帛的位置,A表示正面,B表示反面,W表示只有一面;
字段“字次”表示楚文字所在简帛上的具体位置;
字段“篇题代码”表示简帛名称代码;
字段“备注”表示数据库作者的备忘录。
表1 数据库结构
表2数据库表单部分记录见下页。
建立一个若干行、竖十列的表格,将数据库中的记录按“表一”格式导入Microsoft Word文档中。竖的第一列是目前使用的汉字(即数据库中字段“隶定”的内容),其后第二列到第十列是楚文字图片。相同“隶定”的图片排列在一起,和其它“隶定”的图片分开。图片下方可以出现相应的图片代码,如表1图片代码中所示。
表2 数据库表单
表3 图片代码
表4 简位号对应代码
任务是针对楚文字数据库进行的一种查询、排版和编辑。由于工作量较大又相对简单,适合利用小程序来实现。选择容易上手的VB,程序的主要工作是对Microsoft Word文档的处理,Access数据库的处理相对较少,只有查询和排序。基本思路如下:
(1)利用VB调用数据库的功能将数据库中的所有记录导入一Word文档中,导入时要按照方便编辑的排序原则,例如:以“隶定”为主要关键词,以“篇题代码”为次要关键词,以“简号”为第三关键词,以“位号”为第四关键词。
完成后的效果如下表4简位号对应代码所示。
(2)利用VB调用Word文档的相关指令对文档进行处理,使之转换成目标文档。
(1)根据“图片”字段的内容(即图片文件路径)将图片文件调入Word文档中;
实现方法:利用Clipboard()功能提取Windows系统剪贴板的内容,再粘贴到Word文档指定位置。
程序如下:
Clipboard.Clear’清除剪贴板
Clipboard.SetData LoadPicture(E:SHB3s14001W06.bmp)’将图片装载到剪贴板
WordDoc1.Tables.Item(1).Cell(1).Range.Paste Special’将剪贴板的信息粘贴到Word文档中
利用上面的语句就可以根据数据库中“图片”字段的内容(即图片文件路径)将图片粘贴到Word文档指定位置。
(2)对调入图片大小的处理:
在对《上海博物馆藏战国楚竹书(1~6)文字编》扫描图的剪切过程中,均是按照每个古文字的实际大小来进行的。每个古文字的图片大小不一,需要在插入Word文档前对图片进行格式上的约定。要求所有图片宽度相同,高度等比例调整。
实现方法:利用“Selection.InlineShapes”功能来设置图片格式,程序如下:
s=Selection.InlineShapes(1).Width’把图片的宽度先赋值给一个宽度变量
Selection.InlineShapes(1).Width=5’再将图片的宽度确定为5
Selection.InlineShapes(1).Height= (Selection.InlineShapes(1).Height*5)/s’等比例调整
利用上面的语句就可以把所有图片的宽度统一定为5,而高度会等比例变化。效果如表一内所示。
(3)图片排列的算法:
按照表一要求,当对应“隶定”的记录数据超过9个时要从下一行的第二列开始继续排列,依此类推。
实现方法:利用WORD文档表格WordDoc.Tables.Item(?).Cell(x,y)属性,将定位表格位置的两个变量x,y作为行和列的指针,利用这两个变量对目前编辑的表格进行定位。
当定位表格的y变量(即列)大于9且本“隶定”内容未完时将指针定位在下一行(x=x+1)的第二列(y=2)。如果本“隶定”内容已经完毕,则将指针定位于下一行(x=x+1)的第一列(y=1)开始重新对新的“隶定”内容进行处理。
当启动Visual Studio Basic运行后出现如下图1所示:
图1
图形数据处理方案是计算机电子信息领域研究的重点方向,简帛文字是图形的一种,如何把数据库的简帛文字图片图形转换成WORD格式,对科研人员更好的掌握其内涵和原理有重要的理论价值和现实意义。
[1]陈明.Visaul Basic程序设计[M].北京:中央广播电视大学出版社,2000.
[2]丁爱萍.Visaul Basic程序设计(第2版)[M].北京:电子工业出版社,2004.
[3]韩松.PAUL MCFEDRIES.Office 2000 VBA编程技术[M].北京:电子工业出版社,2000.
[4]林卓然.21世纪高等学校公共课计算机规划教材·VB语言程序设计(第2版)[M].北京:电子工业出版社,2009.
[5]刘志妩.基于VB和 SQL的数据库编程技术[M].北京:清华大学出版社,2008.
[责任编辑:曲卫华]
Graphical Data Processing in Word Documents Based on Microsoft Visual Basic
ZHANG Zhi-guang
(Department of Production Equipment,Inner Mongolia Jinglong Electrical Power Corporation,Ltd.,Wu Lan Cha Bu,012100,China)
This article presents an attempt in informational processing of Jianbo text,based on the“Chu Bamboo Books During the Warring States Period(1~6):Text,Collected by the Shanghai Museum”edited by Chengyuan Ma and published by Shanghai Ancient Book Publisher.Using Microsoft Visual Basic as a language platform,the author transforms the graphics and text stored in Access databases into the Word document format,thereby facilitating editing and retrieval.This work has significant implications to research on image and graphics processing.
VB;Access database;Microsoft Word document;picture
TP931.1
A
1671-5977(2010)03-0124-05
2010-06-13
张之光(1974-),男,山西盂县人,内蒙古京隆发电有限责任公司设备部助理工程师。