专利名称:传送和读取字形信息的制作方法
技术领域:
本发明涉及在主计算机和输出设备(如打印机)之间传送和读取字形信息。
一种字体的字符构成字形。罗马体字形,如Times-Roman(见附录A,给出Times—Roman字符集)和Helvetica含有相对少的字符(罗马字母,阿拉伯数字,和符号)。表示罗马字形字符所需的信息量一般少到足以允许将之存储在常规计算机打印机的存储器中。
其他字形,例如,亚洲语言的字形,一般含有许多字符或符号,以致完全的字形信息不能方便地一次存储在打印机的内存中。
存储亚洲字形信息的一种方式是存储在与打印机相连的外部硬盘中。
另一种已知的方案是将字形信息存储在主计算机中,并加以利用,当需要时,在单通信通道上,将非标量(non—scalable)位图字符字模从计算机传送到打印机。
总体来说,本发明以这种方法(以及相应的设备)为特征,它使一个输出设备(如一台打印机)能获取属于公用字符字形的光栅扫描字符所用的的字符描述。字符描述存储在外部设备中,该外部设备通过通信通道(例如,辅助通道)与输出设备连接。在输出设备上接收字符代码,并确定待输出的字符。建立待输出字符的光栅图象。在建立光栅图象的过程中,通过辅助通信通道,将与该字符代码相应的信息从输出设备发送到外部设备。响应于从输出设备发送至外部设备的字符代码,相应的字符描述通过辅助通信通道被从外部设备发送到输出设备。
本发明的实施方式包括下述特征。外部设备包括一个具有海量存储器的计算机。通过独立的通信通道(例如,主或基本通信通道),将字符代码发送到输出设备。该主通信通道包括一个并行或串行的通道。在输出设备上收到的字符代码被植入符合图形图象描述语言(如,PostScriptR)的页描述中。公用字形包括亚洲语言中的字形。输出设备包括一台打印机本发明的优点如下具有大量字符的字形(如,亚洲字形)可以存储在主计算机的现有盘驱动器,或其他每量存储设备中,字符描述可以在请求时在现有辅助通信通道上快速传送到打印机。不另加设备,使得处理这样的字形实用且廉价。
通过下述描述和权利要求书,本发明的其他优点和特征将是明显的。
图1是主计算机和打印机的框图;图2是打印机存储器一部分的框图;图3是在字形出错过程中打印机与主机之间交互的流程图;图4是打印机上运行的字形出错程序的流程图;图5是主计算机上运行的字形出错程序的流程图。
PostScriptR语言对于利用光栅输出设备(如,激光打印机)进行打印是有益的,它将被打印的页表示为象素(象元)的矩形阵列。在典型的黑白输出设备上,可将每个象素制为黑的或白的;在某些设备上,可将每个象素设定为中间灰度级或设为某种颜色。通过将大量象素按适当组合设定为适当颜色,就能产生含有文本和任意图形形状的图象。
在主计算机上产生一页的PostScriptR语言描述。该页描述含有将要在该页中被打印的字符、线条、曲线、和其他图象的位编码。该编码处于相当高的级别,按照抽象图形实体而不是设备象素表述。该页描述以位流形式通过基本读/写通信通道卸截到打印机上。
为在一页上打印字符,主计算机将待打印的字符的种类和字体通知给打印机。一般地,在卸截页描述位流之前,位流转换为象素所需的信息卸截到打印机,并存储到打印机存储器中。打印机利用所存储的信息形成并打印由主计算机所请求的字符。
在图1中,亚洲字符12的一页10,由PostScriptR兼容的激光打印机14(例如,从美国马萨诸塞州Maynard的DEC公司购得的DECLaser 1152)根据从主计算机16(例如,VAX/VMS计算机系统)传送的信息产生,这些信息通过基本通信通道18和辅助通信通道20分别传送。
计算机16含有一个微处理器22,一个操作系统24,以及一个应用程序26,该程序能够产生待打印的页的PostScriptR格式的页描述。该页描述在基本通信通道18上发送至打印机14。打印机含一个解释微处理器(“解释器”)17,它通过在光栅存储器22中产生与待打印的页相应的象素图来响应页描述。然后,打印描绘器24将页10上的象素表示用以下详述的方式描绘。
解释器17根据语法规则执行PostScriptR语言,该语法规则使解释器能够以适当顺序执行所需的操作,以及将页描述的各片段配合在一起以产生需要的结果。
页描述含有专门的位,公知为分界符,它们使得解释器17能够将位流组织成称为对象的位组。某些对象通常认为是数据,如数字、布尔量、串和数组。其他对象通常认为是待执行程序的元素,如名字、运算符和过程。
解释器根据预定的规则顺序执行对象。执行一个特定对象的效果取决于该对象的类型、属性和值。例如,数字对象(带符号整数、实数和基数数)的执行是通过将它们拷贝到打印机存储器19的一部分(称为操作数栈30,图2)来进行的。执行名字对象(不能解释为数字对象的任何位组,不包含分界符)使解释器在打印机存储器的一部分(称为字典栈32-含有指向不同字典的指针的列表)中搜索名字对象,并从适当的字典(即,打印机存储器的一块36)中读取和执行与该名字对象相联的一个值。执行由一组对象组成的数组(否则,称为一个过程),使得数组中的对象被顺序地执行。执行一个运算符对象使得解释器进行一种内部动作,其规则存储在打印机存储器中,在相联的名字“系统字典”36或“全局字典”38下。内部动作包括两数相加和光栅存储器一部分的改变。
将字符构成为字形(即,一种字体的类型的完全种类)。PostScriptR解释器所用的字形是在主计算机上以PostScriptR字形程序的形式准备的。字形程序一般由解释器卸截到打印机并执行,以产生字形字典,字形字典存储在打印机存储器19的字典栈32中。在页描述中,字符由位的编码序列表示。
有不同类型的PostScriptR字形,其中某些字形允许程序员指定一个称为BuildChar的过程以描绘一个字符。该过程通过从打印机存储器或某些其他源(例如,与打印机相连的硬盘,字形盒式磁盘、磁带,或主计算机)读取其相应的字符描述来描绘每个字符,并将它们光栅转换为光栅存储器22中的光栅图象(即,象素表示)。
字符描述可采取不同的格式。例如,字符描述可以是PostScriptR第一型字符串(含有编码的线条和曲线,以构造字符的外形;对于更详细的说明,可见PostScriptR语言参考手册第二版)。其他字符描述可采取打印机可用来构造字符的其他数据的格式(例如,一个PostScriptR程序或曲线和线条的编码序列)。字符描述也可是光栅转换字符的位图(这种情况下,打印机向主机发送既含有字符代码又含有位图尺寸的请求,计算机将字符光栅化并将所得位图发送到打印机)。
所有字形(除0字形类型外)都认为是含有各字符描述的基本字形。复合字形是分级组织的基本字形的组合。级顶层的字形是根字形。级较低层的字形称为后裔字形。组合字形工具支持使用非常大的字符集,如亚洲语言的字符集。对于更多的信息请见有关组合字形的指导,可从美国加利弗尼亚州Mountain View的Adobe系统股份有限公司的Adobe系统开发人员协会得到。
解释器可以暂时地存储在字形高速缓存40中执行字符描述所得的结果。当要再次打印相同的字符时,解释器找到并重新利用那些所存储的结果。字形高速缓存通常大至足以容纳一页描述中的所有不同的字符。利用字形高速缓存,一般比每次将要描绘一个字符时再次转换该字符描述快几百倍。
在某些情况下,代表一个字形的字符描述的信息对于常规存储在打印机存储器19中来说容量太大,例如,亚洲字形可能含有多于13,000个字符。通过将辅助盘驱动器连接到打印器,可以设置另外的存储器。在些种方案中,亚洲字符描述存储在盘中,而只有对亚洲字符描述的索引才加载到打印机存储器中。当解释器需要特定字符描述时,解释器可以发出一个文件读请求,以从盘上检索该字符描述。
在本发明中,为处理打印大(如亚洲)字形所需的信息,打印机和主机经过可用的辅助通信通道20传送字形信息。
当原始字形信息加载到打印机存储器时(即,用于描绘所需字符字体的适当的BuildChar过程),PostScriptR客户方式字形出错程序42经基本通信通道18卸载到打印机14。如图3所示,当解释器调用BuildChar过程时,它打开打印机和主计算机(50)之间的通信通道20,它使得打印机能够另外访问存储在主计算机(52)的盘存储器29中的字符描述。主计算机上运行的一个服务程序31将所请求的字符描述返回打印机(58)。该字符描述是存储在主计算机存储器中的预处理的数据(例如,Adobe第一种格式的字符描述)。如果需要(54),服务程序也能在将之发送到打印机(56)之前转换其他字形格式的字符描述。这种格式的字符描述可以是可标量(scal-able)外形描述或扫描转换的位图。
当页描述唤醒由字形出错程序和服务程序处理的亚洲字形时,解释器可以不在打印机存储器中的字典中搜索与字符名字相联的字符描述,而可在辅助通信通道20上通过BuildChar过程利用名字来请求字符描述。服务程序通过打开一个适当的字符描述数据文件并从中读,或从某些其他格式的字形数据转换,并在通道20上返回该描述来响应。解释器以通常方式将字符描述转换为光栅存储器的象素表示。
如图4所示,在打印机16的解释器上所运行的客户方式字形出错程序可以执行以下步骤序列、以设计从主计算机检索字符描述。首先,解释器从主计算机在通信通道18上卸载的页描述位流中接收字符名字(100)。然后,以只写文件方式打开通信通道20(102)。将字符“>CS”写入通信通道20,以向主计算机发送一个字形信息请求(104)。接着,将字符名字的最后两个字符转换成十六进制,并将转换后的字符写入通信通道20,以表示存储在主计算机上的编码字符描述的行号(106)。然后,将与字符名字相联的两个字符代码转换为十六进制表示,并将转换后的代码写入通信通道20,以表示存储在主计算机上的编码字符描述的列号(108)。然后,将由主计算机在通信通道20上卸载的表示字符描述的字符流读入与CS—BUF相联的存储地址,直到收到文件尾(EOF)指示符“—>”(110)。最后,解释器以常规字符描述执行与CS—BUF相联的字符描述(112)。
如图5所示,运行在主计算机上的服务程序可以包括下列步骤。首先,使端口21(图1)能进行读/写输入/输出(I/O)操作(120)。若端口12在一秒钟的I/O操作中断接,则暂停一秒钟,并转到步骤1(122)。接着,打开通道20(124)。然后,将输入的位流从通道20拷贝到MSG—BUFFER所标的存储器部分中(126)。然后将一个指针设置到MSG—BUFFER中第一次出现的“^>”处。如果存在,则在MSG—BUFFER中将分界符“<”从字符中去除(130)。如果MSG—BUFFER中的前两个字符是“CS”,则转到步骤134,否则转到步骤126(132)。然后,打开存储在盘存储器29上的字符描述索引文件(134)。获得存储在MSG—BUFFER中的行和列信息,并根据入口“索引[行×188+列]”得到字符描述的索引(136)。然后打开字符描述数据文件(138)。利用从索引文件检索到的索引从字符描述数据文件获得所请求的字符描述,并将之存储到CS—BUF(140)。然后,将EOF指示符“—>”加到CS—BUF中的字符描述结尾处(142)。将CS—BUF中的字符描述卸载到打印机(144)。如果在通道上收到另外的位,则返回到步骤126;否则断接通信通道20(146)。
根据BuildChar过程是如何编写的,字符描述可以有几种不同的格式。本发明与下述字符描述格式兼容。
PostScriptR第一型字符串是将整数和命令编码的无符号8位字节的加密序列。它可以直接送到PostScriptR的内部光栅器(ras-terizer)(第一型光栅器),以描绘一个字符。BuildChat过程在辅助通信通道上向主计算机发送一个包含字符代码和字形信息的请求。然后,它打开辅助通道,以读取并等待自主机返回的字符串。在收到请求后,计算机检索存储在计算机盘存储器中的字符串,并在辅助通信通道上将其送回打印机。BuildChar过程接收该字符串,并将其传到第1型光栅器以描绘该字符。除读盘之外,计算机可能从其他字形格式(如,TrueType)及时构造字符串。对于PostScriptR第1型字符串的详细说明请见Adobe系统股份有限公司的1.1版的Adobe第1型字形格式。
PostScriptR第3型字形利用普通的PostScriptR语言运算符和过程定义字符形状。为描绘一个字符,BuildChar过程执行PostScriptR代码,以构造字符的外形。通常,用于描绘各字符的PostScriptR代码存储在PostScriptR字典中。然而,本发明中,编写BuildChar过程,以从外源引入字符描绘PostScriptR代码。字形程序的BuildChar过程在辅助通信通道上向主计算机发送一个请求。该请求包含该字符代码和字形文件信息。然后,它打开辅助通道,以读取并等待将从主计算机返回的PostScriptR代码。计算机在收到请求后,将构造PostScriptR字符描述,并在辅助通信通道上将之送到打印机。计算机能通过检索存储在盘存储器上的信息,或从另一格式及时转换,来构造字符描绘PostScriptR代码。BuildChar过程收到PostScriptR代码,并将之送到PostScriptR解释器以执行。对于PostScriptR第3型字形程序的详细说明,请见美国加利弗尼亚州Mountain View的Adobe系统股份有限公司的第二版PostScriptR语言参考手册。
一个第3型字形程序能够利用PostScriptR运算符“inagemask”(图象遮盖)描绘一个字符,以将一个光栅转换的位图绘制到打印机的光栅存储器中。PostScriptRimagemask运算符利用当前色彩将一个抽样的图象绘制到当前页上。抽样的图象是1位抽样的矩形阵列,1位抽样用来控制哪里施加当前色彩的颜料,以及哪里不施加。根据本发明为描绘一个字符,字形程序的Build-Char过程在辅助通信通道上向主计算机发送一个请求。该请求包含字符代码,字形名字和字样,以及将由主计算机提供的位图的尺寸。然后,BuildChar过程打开辅助通道,以读取并等待将从主机传来的位图。计算机在收到该请求后,将建立一块存储区,并调用其图形子程序,以按要求的尺寸将字符绘入存储器。计算机以适当的PostScriptR格式格式化位图,并在辅助通信通道上将数据送到打印机。BuildChar过程接收位图数据.以串的形式存储,并调用image-mask运算符以描述该字符。
其他的修改都在衣发明的范围内。例如,本发明可用于具有两个或多个读/写通信端口的任何光栅输出装置,且本发明不限于PostScariptR打印机。附录A标准罗马字符集ABCDEFGHIJKLMN0PQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&0l23456789 U á à é è μ ó ú üù £¥f$¢¤TM@@ °+§ * ? <>《》()[]{}丨/\--- #%‰1/4 3/4 1/2=-+×-<±>÷ /.|1权利要求
1.在输出设备上输出属于公用字符字形的字符的方法,包括将公用字符字形的每个字符的字符描述存储在外部设备中,该外部设备通过通信通道与该输出设备链接;在输出设备上接收标识待输出字符的字符代码,建立待输出字符的光栅图象,在建立光栅图象的过程中,经过通信通道从输出设备向外部设备发送与该字符代码相应的信息,以及根据从输出设备向外部设备发送的字符代码,经该通信通道从外部设备向输出设备发送相应的字符描述。
2.权利要求1的方法,其中外部设备包括一台具有海量存储器的计算机。
3.权利要求1的方法,其中字符代码是经第二个独立通信通道发送到输出设备的。
4.权利要求3的方法,其中第二通信通道包括一个串行通道或一个并行通道。
5.权利要求1的方法,其中在输出设备收到的字符代码被植入符合图形图象描述语言的页描述中。
6.权利要求5的方法,其中所述图形图象描述包括PostScriptR语言。
7.权利要求1的方法,其中公用字符字形包括亚洲语言的字形。
8.权利要求1的方法,其中输出设备包括一台打印机。
9.在PostScriptR打印机上打印属于公用亚洲字符字形的字符的方法,包括将字符描述存储在主计算机中,该计算机通过基本通信通道和辅助通信通道与打印机相链接;经基本通信通道从主计算机向打印机发送PostScriptR页描述,该页描述包含标识待打印字符的字符代码;在打印机中,建立待打印字符的光栅图象,在建立光栅图象的过程中,经辅助通信通道从打印机向主计算机发送字符代码;根据从打印机向主计算机发送的字符代码,经辅助通信通道从主计算机向打印机发送相应的字符描述。
10.在输出设备上输出属于公用字符字形的字符的装置,包括用于字符描述的存储器,该存储器位于外部设备中;一条链接输出设备和外部设备的通信通道,输出设备上的用于接收标识待输出字符的字符代码的端口,用于建立待输出字符光栅图象的字符建立器,用于经通信通道从输出设备向外部设备发送与字符代码相应的信息的装置,用于经通信通道从外部设备向输出设备发送相应的字符描述的装置。
11.权利要求10的装置,其中外部设备包括一台具有海量存储器的计算机。
12.权利要求10的装置,还包括链接输出设备与外部设备的第二条独立通信通道。
全文摘要
一种输出设备,能够获得用于光栅描述字符(属于公共字符字形)的字符描述。字符描述存储在外部设备中,该外部设备通过通信通道与输出设备连接。在输出设备上接收标识待输出字符的字符代码。建立待输出字符的光栅图象。在建立光栅图象的过程中,经通信通道从输出设备向外部设备发送与字符代码相应的信息。响应于此,经通信通道从外部设备向输出设备发送相应的字符描述。
文档编号B41J2/485GK1116006SQ94190850
公开日1996年1月31日 申请日期1994年10月28日 优先权日1993年11月1日
发明者奇·萨姆·凯姆 申请人:计数设备公司