当前位置:首页 > 计算机 > 计算机应用 >

基于Publisher自定义模板的自动排版系统

分享到:
作者:秩名。 TAGS:系统,自动,模板,定义,基于,图片,
   日历等印刷片的版面设计,具有页数多,格式系列化的特点,即图片、文字、艺术字等页面元素在每一页的大小及相对位置是基本不变的,只是其图片摘要求时,设计的工作量较大,设计周期也较长,不易满足用户的需求。 如果能将日历设计中一年365天所用到的所有图片、文字及艺术字等相关信息保存在数据库中,每条记录存放一
页的元素属性信息,则可以通过对Microsoft Office Publisher对象编程,根据数据库中的记录的页面元素的属性值,按页将版面元素添加到各个页面并正确地设置其属性。为了简化数据库结构及减少记录的信息量,象元素在页面中的位置及大小等信息通常是无需记录的,可通过预设一个页面模板,自动生成其它页面时按此模板页进行定制即可。也就是说,每当设计一种新的版式时,人工只需设计一个模板页,其它页面由软件按此模板自动生成,它带来的另一个好处是,定制板式也能较快实现,只需修改模板页即可。
  1系统原理
  通常一个Publisher模板页上有四五十个排版元素,如图1.1所示。元素可分为两类:一是在每页中保持不变的元素,如每页中的背景底图等;二是在各页中内容或格式等有变化的元素,如日期、星期、插图等。第一类元素的处理方法较简单,只要通过复制模板页就能完成,这里不作讨论,对模板中的第二类元素首先要进行与数据库中字段的“关联”日历,以便在自动生成新页时让系统能“识别”出模版中的某个元素是否可变,若可变,则能找出它的属性值记录在哪个字段中。简单地说,“关联”就是指将模板页中的可变元素与数据库表中的字段名进行一一对应的映射过程。
  
  图1.1 模板页示例
  模板页中的可变元素的“关联”结果应能随Publisher模板页保存,但不破坏模板页元素的外观效果,同时,软件系统能设置、修改、识别其“关联”信息。显然,将“关联”信息写入到可变元素的某个特定的属性中是较好的解决方案,即,只要将字段名写入到相应元素对象的某个属性。根据Microsoft Office Publisher的对象模型,Publisher模板页上的图片、文本框、艺术字对象都有一个Tags属性集合,此属性集可用于存放出版物的标签或自定义属性,非常适合用于记录“关联”信息,利用它提供的Add方法能将新的 Tag 对象添加到指定的 Tags 中,并返回新的 Tag 对象,其格式如下:
  obj.Tags.Add(Name,Value)
  obj表示Pu
[论文网 lunwen.nangxue.com]blisher模板页上的元素对象。
  Name:String 类型。要添加的标签的名称。如果已经存在具有同名的标签,将会出现错误。
  Value:Variant 类型。指定给标签的值。实用时在这里可指定关联的字段名。
  在“关联”算法的设计中,系统首先对模板页中所有的排版元素进行检测,列出所有元素对象的类型、名称及关联信息,并将此信息按对象的类型分类显示在列表框中,由用户通过鼠标在此列表中选择欲关联的对象,系统将自动根据用户选中的元素在Publisher模板页上将其用选定符标出。值得注意的是,不应让用户直接用鼠标在Publisher文档上选取,因为当页面元素较多或元素较小时,很难找准哪个对象是我们所需要的,也容易产生漏选。
  元素选定后,由用户指定与之“关联”的字段名后保存,“关联”信息也将随Publisher模板页一起保存。
  自动生成其它页面时,系统接收用户指定所需的页数,利用模板页复制出各生成页,通过检测每页中各元素对象的Tags集合的Tag对象的Name和Value,提取出与之关联的字段名,从数据库中取出对应的值进行设置或修改。这种处理手段对文本框、艺术字对象是有效的,因为通过文本框对象的TextEffect.Text属性及艺术字对象的TextFrame.TextRange.Text属性可设置文字内容,其它如文字颜色等属性也可通过CMYK参数进行设置和修改。但对于图片对象无法采用这种处理方法,因为在Microsoft Office Publisher的对象模型中,已添加到Publisher文档的图片对象是不能通过属性值更换图片的,只有通过先删除再添加的方法进行操作,因此,对于可变图片应采用特殊的处理手段,为了将新添加的图片准确地插入到模板图片的位置,在进行自动生成前,不但要有与它关联字段的信息(保存的是图片文件所在路径及文件名),还应保存模板图片在本页中的Left、Top、Width、Height等属性,当存下这些信息后,可将模板页中的可变图片删除,在新生成的页面时,按保存信息中的字段名及Left、Top、Width、Height等属性将新图片插入到相应的页面中的指定位置。
  
  • 共3页:
  • 上一页
  • 1
  • 2
  • 3
  • 下一页