WEB开发网
开发学院软件教学办公软件Word 批量打印带照片证件 阅读

批量打印带照片证件

 2008-12-25 20:48:55 来源:WEB开发网   
核心提示:最近单位要打印一批工作证,具体工作要求是:员工基本信息来自数据库,批量打印带照片证件,工作证上必须有每个人的照片,员工照片的文件名是员工编号, 本文提到的方法既省去了麻烦的程序代码,也不需要高昂的共享软件费用,员工基本信息来自数据库,利用Word邮件合并功能即可完成

最近单位要打印一批工作证,具体工作要求是:员工基本信息来自数据库,工作证上必须有每个人的照片,员工照片的文件名是员工编号。员工基本信息来自数据库,利用Word邮件合并功能即可完成,但邮件合并功能无法插入图片。难道就真的没有办法了么?经过一番探索,笔者终于找到了使用邮件合并也能实现此要求的方法。

实现思路

实质上邮件合并使用的是域,那么要想实现照片的自动处理应该从域上找突破口。在Word中插入图片可以用Include Picture 域来实现,具体语法为IncludePic ture "文件名"。插入照片的功能解决之后,问题就转到如何实现自动转换文件名的问题上。而照片的名称为了管理的方便通常都是使用编号作为文件名,这样使用编号域即可解决问题。那么怎么实现文件名的自动转换呢?方法就是——把两个域嵌套起来!

实例环境

包含员工信息的“员工数据库.mdb”中的“员工库”表如图1所示(当然也可以把这些信息放在Excel中):

员工照片放在e:photo文件夹里,每位员工的照片文件名和编号相对应。

轻松操作

打开Word,从视图菜单选择“工具栏”→“邮件合并”;从邮件合并工具栏上依次选择按钮,设置文档类型为“信函”;单击打开数据源按钮浏览选取准备好的数据库;然后设计主文档并通过邮件合并插入只包含文字的域,排版结果如图2所示。

下面关键的一步就是照片域的实现:

先把光标定位在要插入照片的地方,按“Ctrl+F9”组合键插入一个域,输入“In cludePicture "e:photo”再按“Ctrl+F9”组合键插入一个域,输入“MergeField "编号"”,光标定位到这个域之后输入“.jpg"”,最后看到的结果应该是:

{IncludePicture "e:photo{MergeFi eld "编号"}.jpg"}

然后单击合并到新文档按钮,咦,怎么照片处什么都没有?别急,按“Ctrl+A”组合键全选,再按F9,每位员工对应的照片都出来了,如图3所示。

  注意事项:  1. Word中IncludePicture 域中文件名的路径用“”代替“”。

2. IncludePicture域同样支持长文件名。比如可以写为:

{IncludePicture "D:Documents and SettingsAdministrator桌面用Word邮件合并实现批量打印带照片证件邮件合并photo05.jpg"}

3. IncludePicture域中的文件名路径可以使用相对路径和绝对路径。比如可以写为:

{IncludePicture "邮件合并photo 005.jpg"},文件保存后则会从文档所在的文件夹下去找对应文件。

4. 特别注意,引号内的文件名一定不能写错,甚至多加一个空格也不行,否则Word将找不到图片文件,只会出现一个红叉。比如不能写为:

{IncludePicture "e:photo {MergeF ield "编号"}.jpg"},因为photo后多加了空格。

编后

实际上插入一张照片使用的域是{In cludePicture "e:photo01.jpg"},插入编号域用的是{MergeField "编号"},而本文把这两个域嵌套起来就成了{IncludePic ture "e:photo{MergeField "编号"}.jpg"},从而满足了本文最初提出的要求。

本文提到的方法既省去了麻烦的程序代码,也不需要高昂的共享软件费用。只要稍加变通就可广泛应用在打印学籍、证件、准考证、档案上。

Tags:批量 打印 照片

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接