CN102254155A - 准确的字体激活 - Google Patents
准确的字体激活 Download PDFInfo
- Publication number
- CN102254155A CN102254155A CN2011101879173A CN201110187917A CN102254155A CN 102254155 A CN102254155 A CN 102254155A CN 2011101879173 A CN2011101879173 A CN 2011101879173A CN 201110187917 A CN201110187917 A CN 201110187917A CN 102254155 A CN102254155 A CN 102254155A
- Authority
- CN
- China
- Prior art keywords
- font
- document
- fonts
- information
- conflict
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
- G06K15/02—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K15/00—Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
Abstract
准确的字体激活。提出处理文档、识别被用于重现文档的字体并基于已识别字体来识别冲突的系统和方法。所述系统和方法可以识别与文档相关的字体,识别在所述字体和另一字体之间的冲突,为所述文档确定替代字体,并接着基于所述冲突修改所述替代字体和所述文档的信息,以防止所述已识别的冲突导致文档被不正确地处理。所述系统和方法接着可以允许所述文档基于所述已修改信息来被进一步处理。
Description
技术领域
本发明通常涉及管理字体,以及更特别地涉及准确地激活字体的系统和方法。
背景技术
文档创建程序、文档处理程序、桌面发布应用、网络出版、文档打印应用程序及其它计算机程序通常允许用户选择不同的字体来创建和打印文档。随着这些年来字体数量的增加,对于用户来说管理不同的字体变得更加困难了。例如,一种字体也许会与另一种字体相冲突。当具有冲突的字体的文档被计算系统处理时,这种冲突也许会导致错误的字体被计算系统激活和/或使用。相应地,字体冲突也许会使计算系统不正确地处理文档(例如,不正确地加载、查看、打印等)。进一步地,计算系统和/或文档处理的正时(timing)可以判断字体冲突是否发生,并因此可以判断计算系统是否不正确地处理文档。例如,依赖于字体激活的正时、文档处理的正时和/或计算系统的操作系统,字体冲突可能会或可能不会发生。
因此,根据上述内容,提供一种能确保准确字体激活的系统和方法将是有益的,以便当文档被处理时在文档被使用、打印和渲染等的时候,正确的字体被选择、激活和使用。另外或者做为选择,根据上述内容,通过在字体冲突使计算系统不正确地处理文档之前解决一个或多个字体冲突,从而提供一种能确保准确字体激活的系统和方法将是有益的。
发明内容
本发明内容被提供用于以简化的形式介绍一组概念,其在下面在具体实施方式中被进一步描述。本发明内容不是要识别所要求保护的主题的关键特征或基本特征,也不是要用于限制所要求保护的主题的范围。
本公开的多个方面涉及用于在一个或多个文档中确定冲突和解决字体冲突的系统和方法。本公开的更进一步的多个方面涉及用于为了包括例如文档打印的各种文档处理的目的来准确激活字体的系统和方法。本公开的更进一步的多个方面涉及用于在字体冲突使计算系统不正确地处理文档之前解决一个或多个字体冲突的系统和方法。
根据本公开的至少一些方面,提供一种确定并防止字体冲突发生的计算系统环境。根据本公开的一些方面,可以识别一种或多种字体,并且可以基于识别的字体来确定字体冲突。根据本公开的一些方面,可以确定涉及字体冲突的字体的替代字体。在其它方面,可以基于字体冲突来修改替代字体。在本公开的又一些其它方面,可以基于替代字体的修改信息来修改涉及字体冲突的一个或多个文档。根据本公开的再一些其它方面,紧接着修改,可以获得涉及字体冲突的一个或多个文档来用于进一步的处理。根据本公开的一些方面,可以再次修改所述一个或多个文档以恢复它们的初始状态。
根据此处列出的下面的具体实施方式、附加的权利要求书和附图,本公开的这些及其它的新的优点、细节、实施例、特征和目标对本领域技术人员将是显而易见的。
某些实施例是作为示例来显示的而不是被限制在附图中的,在所述附图中相同的附图标记表示相似的单元,并且其中:
图1显示了被配置为执行本发明的一个或多个说明性方面的示例数据处理系统。
图2显示了在文档的字体之间具有潜在的字体冲突的两个示例文档。
图3显示了由示例字体冲突引起的一个或多个可能的影响。
图4显示了为文档的字体提供正确的字体信息的示例方法。
图5显示了借此可以防止字体冲突的示例方法。
图6显示了根据本公开的一个或多个方面的防止字体冲突的示例方法。
具体实施方式
在下面的各种实施例的说明中会参考附图,所述附图构成本文的一部分,并且在所述附图中作为说明显示了各种实施例,在所述实施例中可以实践本发明。需要理解的是,可以使用其它实施例并且可以进行结构和功能的改变而不偏离本发明的范围。
本公开的多个方面涉及用于管理不同字体的系统和方法。此外,本公开内容的至少一些方面涉及用于准确地激活由一个或多个文档使用的字体的系统和方法。参考图1,此处描述的方法和技术可以实现在计算系统环境100中。计算系统环境100代表一般的计算装置,例如台式计算机、膝上型计算机、笔记本计算机、网络服务器、便携式计算装置、个人数字助理、智能电话、移动电话、分布式计算网络装置或任意其它装置,所述任意其它装置具有必要的组件或能力,其能如此处所述地进行工作以及在一些配置中能被构造为根据本发明的一个或多个说明性方面的专用装置。环境100可以包括中央处理单元(CPU)或其它处理器103、RAM或其它易失性存储器105、ROM或其它引导存储器107、(一个或多个)网络接口109(例如,以太网、无线网络接口、调制解调器等)、(一个或多个)输入/输出端口111(例如,键盘、鼠标、监视器、打印机、USB端口、串行端口、并行端口、IEEE1394/火线端口等)和非易失存储器113(例如,固定盘、光盘、全息照相存储器、可移动存储介质、闪存驱动器等),其中计算装置(例如,计算系统环境100)可通过所述网络接口109连接到网络(例如,因特网、局域网、广域网、个人局域网等)。环境100可以在存储器113中存储各种程序、应用程序和数据,包括但不限于操作系统软件115、字体模块117(例如,一个或多个插件和/或其它字体软件)、数据119(例如,文档、字体文件、任务夹(job jacket)及此处描述的其它数据)以及例如文档创建软件和文档处理软件这样的其它文档软件121(例如,商标的应用程序、商标的应用程序、文档打印程序等)。文档创建软件可以是目前已知的或以后开发的任意软件,所述软件可被用于创建文本、图形、图像、摄影、多媒体或任意其它类型的视觉上可感觉到的文档。文档处理软件可以是目前已知的或以后开发的任意软件,所述软件可被用于处理文本、图形、图像、摄影、多媒体或任意其它类型的视觉上可感觉到的文档。
本公开内容的一个或多个方面可以体现在计算机可用数据和/或计算机可执行指令中,例如体现在由一个或多个计算机或其它装置执行的一个或多个程序模块中,用以渲染用于在例如显示器或打印机这样的装置上输出的一个或多个字体。通常,程序模块包括当由计算机或其它数据处理装置中的处理器执行时进行具体任务或实现特定抽象数据类型的例行程序、程序、对象、组件和数据结构等。计算机可执行指令可以存储在计算机可读介质上,所述计算机可读介质例如硬盘、光盘、可移动存储介质、固态存储器和RAM等。正如本领域技术人员所理解的,程序模块的功能在各个实施例中可以依照要求进行组合或分配。此外,功能可以整体或部分地体现在等效的固件或硬件中,所述固件或硬件相当于集成电路、现场可编程门阵列(FPGA)等等。具体数据结构可被用于更有效地实现本发明的一个或多个方面,并且这种数据结构在此处描述的计算机可执行指令和计算机可用数据的范围内是被预期的。
进一步参考图1,正如以上的讨论,计算系统环境100可以包括与操作系统115相互作用的文档软件121。操作系统115可以包含用于全局地激活字体的应用程序接口。也就是说,在一些方案中,运行在操作系统115上的所有进程可以访问和使用已激活的字体。另外或者做为选择,操作系统115也可以提供在应用程序的进程空间内部激活字体的能力,只有该具体进程能够看到和使用所述字体。操作系统115也可以提供当前在计算环境100上激活的字体的列表。
在一些方案中,对于将在计算环境100中激活的特定字体,与所述字体相关的物理数据(例如,表示字体特性的字体文件等)也许需要安装在计算环境100中。在一些实施例中,操作系统115可以在字体文件夹中存储已安装字体的数据。另外,操作系统115可以包括保存关于已安装字体的信息的系统注册数据库。字体可以通过将适当的数据放入字体文件夹和/或更新系统注册中的信息来安装。当被正确安装时,所述已安装字体可以被激活。在有些情况下,激活字体可以包括例如通过到所述数据的路径以及所述物理数据本身的某个标识(例如,到字体文件夹的路径以及字体文件的文件名),来识别已安装字体的物理数据的位置。当被激活时,计算环境的应用程序可以使用一个或多个已安装字体。例如,应用程序可以访问已激活字体的字体文件并根据字体文件重现字体。
在一些方案中,计算系统环境100可以包括字体模块117。在一些方案中,字体模块117可以包括用文档处理应用程序121编写并与之存在接口的一个或多个字体管理插件(例如,被编写为连接到Adobe、Quark、文档打印应用程序等),以帮助计算系统环境100管理和准确激活字体。在一种情况下,字体模块117可以包括在应用程序内部自动打开和关闭字体的自动激活插件。例如,插件和/或扩展(XTension)可以包括对CS4、AdobeCS4和QuarkXPress8、InCopy、CopyDesk等的支持以及对Creative Suite3的软件应用程序和QuarkXPress7的支持。自动激活插件在后台工作并给用户提供当自动激活字体时在他们选择的应用程序中无缝工作的能力。在一些方案中,字体模块117可以与字体管理器123相互配合和/或使用来自于字体管理器123的信息来帮助管理和/或准确激活字体。字体模块117可以在处理文档之前识别和防止字体冲突。该示例方法在下面进行详细讨论。
在一些方案中,计算系统环境100可以在激活字体和/或处理其它字体相关请求时访问字体数据库。例如,当在计算系统环境100上执行的进程请求与字体相关的信息(例如,判断字体是否安装在系统上、输入已安装字体的列表、与激活字体相关的请求等)时,操作系统115可以返回安装在计算系统环境100中并对所述请求作出响应的一个或多个字体的信息。在一个实例中,操作系统115可以接收对与当前激活的字体相关的信息的请求。作为响应,操作系统可以发送关于当前激活字体的信息,例如激活字体的名称、通向激活字体的字体文件的路径以及激活字体的激活水平等。
另外或者做为选择,在一些方案中,计算系统环境100也可以包括被配置为识别、激活和停用字体的字体管理器123。在具有字体管理器123的实施例中,字体管理器123可以将字体安装和/或激活到计算系统环境100中。在一些方案中,字体管理器123可以访问字体数据库125。当字体将被激活时,字体管理器123可以将字体从字体数据库125安装到操作系统115的存储空间中(例如,通过将字体存储到操作系统115的已安装字体数据库(未示出)中)。当字体被停用时,字体管理器123可以将字体从操作系统115的存储空间中删除(例如,通过将字体从操作系统115的已安装字体数据库(未示出)中删除)。在一些方案中,通过从操作系统115的存储空间中安装和/或删除字体,操作系统可以保存与可以安装在计算机上的全部字体的一个小的子集的知识。在其它方案中,字体管理器123可以与例如文档创建应用程序这样的文档软件121相互配合,以识别文档的字体并为所述识别的字体生成字体标识关键字。该示例方法在下面进行详细讨论。在一些实施例中,字体数据库125可以和字体管理器123分离(例如,可经由网络接口109访问的远程数据库)。
在一些实施例中,计算系统环境100可以包括与计算系统环境100的各个部分(例如,操作系统115、文档软件121等)交互(例如,通过输入/输出端口111)的打印系统127。在一些方案中,用户可以与计算系统环境100交互以使用打印系统127打印文档。例如,用户可以与文档软件121和/或操作系统115交互以加载文档并使用打印系统打印文档。
本公开内容的各个方面涉及在计算系统环境中准确地激活字体。在一些实施例中,准确地激活字体可以包括在允许进一步处理文档之前识别潜在的字体冲突并解决所述潜在的字体冲突。例如,可以识别与一个或多个文档和/或计算系统相关的字体(例如,第一字体和第二字体)。在字体的识别方面,可以识别在所述字体之间的潜在冲突(例如,在第一字体和第二字体之间的潜在冲突)。基于识别的冲突或潜在冲突,可以在允许进一步处理文档之前修改与所述潜在冲突相关的信息来解决潜在冲突(例如,第一字体的信息、第二字体的信息和/或一个或多个文档的信息)。在修改适当的信息时,使用修改的信息,潜在冲突中所涉及的文档可用于进一步的处理。
字体冲突可能发生于在计算环境上安装的字体、当前在计算环境中激活的字体和/或与一个或多个文档相关的字体之间。可以被识别、解决等的潜在字体冲突的一个示例是由具有相同识别信息的字体引起的冲突。在某种情况下,具有相同识别信息的字体也许会冲突,从而使一个或多个文档被不正确地处理(例如,不正确地打印、不正确地查看等)。字体的识别信息可以包括字体的名称,例如Postscript或TrueType的名称。字体的识别信息也可以包括用于特定字体的文件名、文件位置和/或任意识别符。图2显示了在文档的字体之间具有潜在的字体冲突的两个示例文档。具体说地,图2显示了由于文档包括具有相同识别信息的字体而发生的字体冲突。除了图2中显示的潜在冲突之外,冲突可以由具有相同识别信息的字体而引起。在一个示例中,潜在字体冲突可以存在于文档的字体和计算环境的系统字体之间。
现在参考图2的显示的示例,第一文档201包括由其名称FONT-1202标识的字体,其可以用于重现和/或渲染文档201。内容区域205显示了用FONT-1202渲染的示例文本。此外如图2所示,第二文档203识别了也被命名为FONT-1204的字体,其可以用于重现和/或渲染文档203。第二文档203的内容区域207包括使用如籍由/通过第二文档203所识别的FONT-1204来渲染的示例文本。尽管第一文档201和第二文档203识别了具有相同名称(即,相同识别信息)的字体,但使用两种字体202和204渲染的文本的外观是明显不同的。第一文档201和第二文档203只是显示了一个示例性情况,其中文档201和203也许会由于对字体202和204信息(例如,字体名称:FONT-1)的识别之间的冲突而被计算系统不正确地处理。
具有相同识别信息的字体可以以不同的方式产生。例如,具有相同识别信息的字体可以由字体开发公司(font foundry)产生。在一个示例中,字体开发公司可以产生一种具有特定Postscript名称(例如,Helvetica、Courier等)的字体,并且可以产生具有相同的特定Postscript名称(例如,不同版本的Helvetica、Courier等)的第二字体。当使用第一和第二字体处理文档时,第一和第二字体的识别信息可能实质上相同或相似,但使用那些字体渲染的文本可能具有不同的外观,从而导致字体冲突。正如另一个示例,具有相同识别信息的字体可以由多个字体开发公司产生。例如,第一字体开发公司可以产生具有特定Postscript名称(例如,Helvetica、Courier等)的第一字体,而第二字体开发公司可以产生具有相同的特定Postscript名称(例如,Helvetica、Courier等)的第二字体。相应地,当使用第一和第二字体处理文档时,第一和第二字体的识别信息可能实质上相同或相似,但使用那些字体渲染的文本可能具有不同的外观,从而导致字体冲突。
再参考图2,当计算系统处理文档201和/或文档203(例如,渲染、加载、查看、打印等)时,字体冲突也许会发生并使错误的字体被激活和/或使用(例如,使用不正确的字体渲染、使用不正确的字体加载、使用不正确的字体查看、使用不正确的字体打印等)。相应地,激活和/或使用涉及字体冲突的字体(例如,彼此冲突的字体)也许会使文档被不正确地处理(例如,文档201和203中渲染的文本也许会不正确地显现)。图3显示了由示例字体冲突引起的一个或多个可能的影响。应该注意到,图3显示了在图2中显示的字体冲突的一个或多个可能的影响。其它影响及其它冲突是可能的。例如,另一个影响也许包括使用不正确的字体渲染文档的影响。相似的影响也许会基于其它的冲突发生,所述其它的冲突包括在文档的字体和系统字体的字体之间的冲突。特别地,图3显示了由冲突的识别信息引起的字体冲突的一个或多个可能的影响。相对于图2所示冲突,由于字体202和204之间的冲突,图3中所示的影响也许会发生在文档201和203被处理时(例如,如图3中被打印)。
在一些方案中,文档的不正确处理由具有冲突的识别信息的字体引起。当处理文档时,冲突的信息导致不正确的字体将被使用。如图3的步骤301中所示,在计算系统中打开第一文档并激活第一字体。在一些实施例中,激活第一字体包括在计算系统上识别第一字体的物理数据(例如,第一字体的字体文件)以及基于第一字体的识别信息提供对那些数据的访问。例如,在已经激活第一字体之后,处理第一文档的应用程序会需要访问第一字体的字体文件(例如,当第一文档被渲染、打印等时)。应用程序可以经由具有第一字体的识别信息的已激活字体来接收对字体文件的访问。
在步骤303,打开第二文档并激活第二字体。在有些情况下,第一字体和第二字体可以具有相同或相似的识别信息(例如,诸如相同的Postscript名称这样的相同或相似的字体名称等)。在一些方案中,由于冲突的识别信息,当激活第二字体时第二字体可以取代第一字体而成为用于该识别信息的已激活字体。当第二字体取代第一字体而成为已激活字体时,处理第一文档的应用程序可接收对第二字体的字体文件的访问,而不是接收对第一字体的字体文件的访问。因此,激活和/或使用具有相同识别信息的字体也许会导致字体冲突和不正确的文档处理。
图3的步骤305显示了一个示例,其中在已经激活第二字体之后第一文档可能被不正确地处理。在步骤305,计算系统使用第二字体(例如,具有相同识别信息的最近激活的字体)打印第一文档。打印可以包括访问匹配第一字体识别信息的已激活字体并基于已激活字体的特性来打印文档。因为第二字体已经取代第一字体而成为该识别信息的已激活字体,所以当打印第一文档时计算系统使用第二字体的字体文件。因此,第一文档可能不会如预期的进行打印。例如,在第一和第二字体之间,字距调整或某个其它的视觉字体特性可能会不同(例如,字体间距等)。这种差别可以以多种方式影响打印的文档,包括文档页面上文本的重排版、打印文档的视觉误差等。另外或者做为选择,对于用户来说这种影响可能难以注意到和/或可能导致成本超支,包括例如与重打印文档相关的成本超支。
进一步地,多种因素可以判断是否发生字体冲突以导致计算系统不正确地处理涉及字体冲突的文档。在一些方案中,是否发生字体冲突会随字体激活和/或文档处理的同时而发生。例如,计算系统可并行处理多个文档。当并行处理文档时,文档的正确处理可以取决于计算系统激活的上一种字体是否是用于该文档的正确字体(例如,创建所述文档时设计者使用的字体)。在一个特定并行处理时序(timing sequence)中,正确的字体可以是上一种激活的字体,从而允许计算系统正确地处理文档。在不同的并行处理时序的情况下,不正确的字体可以是上一激活的字体,从而以如上所述的方式导致计算系统不正确地处理文档。
另外和/或做为选择,是否发生字体冲突可以取决于计算系统的操作系统。例如,如果冲突的字体是由操作系统在局部进程空间中激活而非全局激活,那么当具有冲突字体的文档不是在相同的局部进程空间中进行处理时,计算系统可以正确地处理文档。然而,如果冲突的字体是被全局激活的,那么计算系统也许会不正确地处理文档。根据关于字体冲突是否发生的这些考虑,字体冲突可能难以以常规方式检测(例如,由用户检查等)。然而,如下文所更详细描述的,系统可以通过在进一步处理文档之前识别潜在字体冲突和解决潜在字体冲突来防止字体冲突发生。因此,通过防止字体冲突发生,不论系统将如何处理文档(例如,串行或并行)和/或计算系统的操作系统的类型,都可以对文档进行处理。
根据本公开的各个方面,计算系统(例如,图1的计算系统环境100)可以被配置为执行以下步骤以防止字体冲突(例如,图2中所示的字体冲突)发生,以及由此防止使文档被不正确地处理。在一些实施例中,计算系统可以使用一个或多个字体模块(例如,图1的字体模块117)、计算系统的操作系统(例如,图1的操作系统114)、计算系统的文档处理应用程序、计算系统的文档创建应用程序、字体管理器、字体数据库和/或它们的一些组合等来防止字体冲突。在一些方案中,字体管理器可以与文档创建程序接口连接,以提供用于文档的字体的正确字体信息,以便在防止字体冲突时使得与文档字体相关的附加信息可用。
图4显示了为文档的字体提供正确的字体信息的示例方法。如步骤401所示,文档的字体被识别。例如,在字体管理器与文档创建程序接口连接的方案中,字体管理器可以识别当前在文档创建程序中设计的文档字体。在一个这种示例中,字体管理器将确定当前在正被设计的文档中使用字体。
在步骤403,确定每个已识别的字体的特性。在一些方案中,字体的特性可以包括字体类型、字体名称、字体版本、字体开发公司和/或与字体视觉特性相关的其它信息(例如,关于字体轮廓的信息、宽度表、字距调整表等)。字体的特性可以根据多个来源确定。例如特性可以根据文档、计算系统的已激活字体、计算系统上安装的字体和/或字体数据库中的字体来确定。在一个实例中,特性根据由文档创建软件使用以渲染正被设计的文档的字体文件(例如,与由文档使用的字体的名称对应的已激活字体相关的字体文件)来确定。
在步骤405,对于每种字体,基于字体的特性来确定正确的字体信息。正确的字体信息可以指定字体的特性。通过指定特性,正确的字体信息可以提供允许相同的字体文件随后在处理文档时被识别的信息。例如,正确的字体信息可以包括允许字体的版本、开发公司、类型和/或名称随后被识别的信息。另外,正确的字体信息也可以包括基于一个或多个确定的特性的错误检验码。在一些实施例中,该错误检验码可以采取基于与字体视觉特性有关的信息的校验和值(checksum value)的形式。在一个示例中,校验和值根据与字体轮廓、宽度表和字距调整表相关的信息来确定。正确的字体信息可以采取多种形式,包括包含一个或多个特性的数据集、指定一个或多个特性的多值关键字等。
在步骤407,正确的字体信息被存储为与文档相关的数据。在一些方案中,正确的字体信息可以被存储为与文档相关的一个或多个分离文件。在其它方案中,正确的字体信息可以作为元数据插入到文档中。存储正确的字体信息并将存储的数据与正被设计的文档关联能允许正确的字体信息被随后访问。在一个示例中,存储的数据可以由字体模块和/或文档处理程序访问,以便可以促使正确的字体信息提供附加信息,例如识别当设计文档时实际使用的字体文件的信息。
在计算系统防止字体冲突的一些方案中,字体模块可以与文档处理程序接口连接以在文档被处理(例如,打印、渲染等)之前提供字体冲突的解决和/或准确的字体激活。图5显示了根据本公开内容的至少一些方面的、计算系统借此可以防止字体冲突的示例方法。尽管该示例方法显示了识别和防止字体冲突的字体模块,但系统的多个方面、组件等等或者其组合可以用于处理所述冲突或潜在的字体冲突。例如,字体管理器可被用于识别并防止字体冲突。另外或者做为选择,计算系统通常可被用于识别并防止字体冲突。如图5中所示,在步骤501,可以识别与一个或多个文档相关的一种或多种字体。例如,字体模块可以识别在文档处理应用程序中重现文档所必需的一种或多种字体。在一些实施例中,文档可以采用包含将其重现所必需的字体的格式。因此,字体模块可以通过处理文档本身来识别与文档相关的字体。在一个示例中,文档可以是可移植文档格式(PDF)。PDF在包含文档的文件内部嵌入了重现文档所必需的字体。在其它实施例中,文档可以包括识别重现所述文档所必需的字体的识别信息。例如,识别信息可以是例如Postscript名称的字体名称。
另外或者做为选择,可以与文档文件一起包括附加的数据。例如,一个或多个附加的文件可以与文档文件相关。在一个示例中,这些附加的文件可以包含重现文档所需的字体和/或文档文件中识别的字体。因此,字体模块可以使用附加的文件来识别与文档相关的字体。这种附加的文件可被包括在任务夹中。任务夹可以包括识别重现文档所必需的字体的文件。在一些方案中,任务夹可以包括具有与原始文档相同的名称但具有例如XML和JKT等的不同文件扩展名的格式文件。任务夹也可以包括对一种或多种字体和文档的引用。任务夹可以包括任意期望的文档格式,并且不限于XML乃至具体的一种标记语言文档,相反地可以是任意形式,在其中包括必要的信息。
作为另一个示例,一个或多个附加的文件可以作为打印作业的一部分而被包括进来,其可以被提供给打印的印前技师(pre-press operator)。在一些方案中,打印作业可以设置在例如USB闪存驱动器和光盘等的便携式介质上,和/或可以例如在因特网上来经由一个或多个网络来发送。打印作业可以进一步以例如.ZIP和.TAR等的文件封装和/或压缩格式来封装。
在步骤503,识别潜在的字体冲突(例如,确定字体冲突是否可能发生)。在多个实施例中,字体模块可以基于对识别字体、在计算系统上安装和/或激活的字体、从中识别字体的文档和/或识别字体激活水平的检查来识别潜在字体冲突。关于基于激活字体的冲突,在有些情况下,字体模块可以检查一种或多种全局激活的字体、一种或多种本地激活的字体和/或它们的一些组合。字体模块可以基于字体(一种或多种)的识别信息(例如,计算系统中活动的一种或多种字体的Postscript名称)来识别潜在字体冲突。如果活动字体的Postscript名称与被识别字体的Postscript名称相同,则字体模块可以将其识别为潜在字体冲突并可以进入步骤504。作为另一个示例,字体模块可以基于被识别的字体是否具有与步骤501中识别的一种或多种字体相同或相似的识别信息(例如,Postscript名称)来识别潜在字体冲突。另外或者做为选择,即使两种或多种字体具有相同或相似的识别信息,识别字体是否冲突也可以是基于字体的激活水平来进行的。例如,如果两种字体都是全局激活的,则在字体之间也许存在字体冲突。因此,这种情况可被识别为潜在字体冲突。然而,如果两种字体是在不同进程空间中激活的,则字体冲突也许不会发生并且可以不识别为潜在字体冲突。
如果没有识别出潜在字体冲突,则在步骤509,可以使文档用于进一步的处理。字体模块可能不能基于各种字体信息和激活水平等识别出字体冲突。例如,只是在不同进程空间中本地激活的字体可能不会被识别为冲突。作为另一个示例,在被识别的字体和/或被激活的字体之间的识别信息可以是不同的。
如果识别了潜在字体冲突,那么在可选步骤504中可以存储有关文档原始状态和/或字体冲突中涉及的字体的信息。在一些方案中,这可以包括存储信息,该信息涉及在与所述字体冲突对应的字体冲突中所涉及的字体以及文档。例如,字体模块可以存储字体冲突中涉及的字体的识别信息(例如,字体冲突中涉及的字体的Postscript名称)。在一些方案中,字体模块可以存储对包括冲突字体的文档的引用(和/或对该文档的一些部分的引用)。
在步骤505,可以防止字体冲突。根据本公开内容的一些方面,字体模块可以以多种方式防止已识别的冲突。例如,字体模块可以修改字体冲突中涉及的一种或多种字体的信息,并且可以修改字体冲突中涉及的一个或多个文档,以便一个或多个文档包括已修改字体的修改信息。下面将更完整地讨论字体冲突的预防。
在步骤507,可以使文档可获得用于进一步的处理(例如,打印、查看、渲染、编辑等)。相应地,当在文档上执行进一步的处理时,在处理期间可以使用预期的字体(例如,根据修改信息来激活字体,从而允许在处理文档时访问正确的字体文件)。在可选步骤508,可以进一步修改文档来恢复文档的原始状态。在一些方案中,可以不执行该步骤。例如,如果不修改文档,那么它们的原始状态不需要恢复并且该步骤可以跳过。做为选择,该步骤可以首先判断文档是否已经修改,并且如果文档与它们的原始状态相比已经被修改,那么该步骤可以继续恢复文档的原始状态。在有些情况下,字体模块可以修改在步骤505期间改变的文档以防止潜在冲突。在可选步骤508,字体模块可以将原始识别信息代入文档中以恢复文档原始状态。例如,如果最初引用字体“Helvetica”的第一文档被修改为指向具有“Helvetica123XYZ”的Postscript名称的修改字体,那么第一文档将被再次修改以用原始识别信息(例如,“Helvetica”)来替换任何出现“Helvetica123XYZ”的地方。在一些实施例中,字体模块可以访问在可选步骤504期间存储的信息,并基于存储信息和/或在步骤503中判断的可能导致字体冲突的信息来将文档恢复到原始状态。例如,字体模块可以访问存储信息,以获取涉及字体冲突的字体的原始识别信息(例如,“Helvetica”)并修改文档,以便无论什么情况下文档引用了字体,文档都使用原始识别信息(例如,用“Helvetica”替换对修改字体的识别信息的任意引用)。
图6显示了根据本公开内容的一个或多个方面的防止字体冲突的示例方法。在步骤601,确定涉及字体冲突的一种或多种字体的替代字体。在一些方案中,基于涉及冲突的字体的识别信息来确定替代字体。例如,在一些方案中,字体模块可以基于冲突中所涉及的字体的Postscript名称来确定替代字体。在一个这种示例中,字体模块可以访问字体数据库,并且基于字体名称来获取将被用作替代字体的字体。
在其它方案中,可以基于附加信息来确定替代字体。例如,当设计文档时,字体模块可以使用与文档相关的正确的字体信息(例如,图4中的正确的字体信息)。正如以上的讨论,正确的字体信息可以包括指定了当创建文档时使用的字体的特性的信息。正确字体信息(在有些情况下包括字体类型、名称、开发公司、版本、错误检验码等等)可被用于确定替代字体。在一个示例中,替代字体可以是与正确的字体信息相同的字体。因此,经确定的替代字体可以具有与正确的字体信息相同的字体类型、名称、开发公司、版本等等。在另一个示例中,替代字体可以是与正确的字体信息类似的字体。因此,经确定的替代字体可以具有和正确的字体信息一样的一些特性(例如,字体名称、字体版本)以及不同于正确的字体信息的其它特性(例如,字体开发公司)。
在有些情况下,当确定替代字体时,字体模块也许需要从多种候选字体中确定替代字体。为了从多种候选字体中选择替代字体,字体模块可以使用多种技术。一种技术可以是选择具有最多匹配特性的字体。第二种技术可以是考虑正确字体信息的、相比于其它特性更重要的一些特性。例如,字体开发公司特性可以认为比字体名称和/或字体版本特性更不重要(例如,不同的字体开发公司也许仅仅表示字体被授权给不同的字体开发公司)。因此,在一个这种实例中,如果两种候选字体都在除了一个特性之外的所有特性上匹配正确的字体信息,其中第一候选字体在字体版本特性方面不同而第二候选字体在字体开发公司特性方面不同,那么字体模块可选择第二候选字体作为替代字体。第三种技术可以是使用可包括在正确的字体信息中的错误检验码。正如以上的讨论,错误检验码可以基于字体的视觉特性。因此,具有匹配码的字体也许是相同的字体或者视觉上相似的字体。在一个示例中,字体模块可以使用生成正确字体信息的错误检验码的相同函数来为候选字体确定代码。基于候选字体代码,替代字体可以被选择作为具有与错误检验码匹配的代码的候选字体。本领域技术人员能够理解,其它技术可用于在候选字体中间进行选择,包括例如组合如上所述的两种或多种技术的混合技术。
另外或者做为选择,当确定替代字体时字体模块可以访问多种字体源。例如,字体模块可以访问安装在计算系统上的字体,和/或可以访问独立的字体数据库(例如,与字体管理器相关的字体数据库)。在一些方案中,字体模块可以从独立的字体数据库中确定替代字体并在计算系统上安装替代字体。在其它方案中,当在计算系统上未找到替代字体时字体模块可以在计算系统上安装替代字体。
在步骤603,可以修改替代字体中的信息。在一些方案中,字体模块可以修改替代字体中的识别信息。例如,字体模块可以将字符的混合符号串(alphanumeric string)添加到识别信息中,从而替代字体的识别信息不同于字体冲突中涉及的其它字体的识别信息(例如,将“123XYZ”添加到“Helvetica”的Postscript名称中以创建“Helvetica123XYZ”的新识别信息)。在其它方案中,字体模块可以利用新的识别信息替代所述识别信息。例如,字体模块可以生成字符的混合符号串,并利用混合符号串替换冲突字体的识别信息(例如,利用“123XYZ”替换字体冲突中涉及的其中一种字体的冲突的Postscript名称)。在又一些其它方案中,字体模块可以基于正确的字体信息来添加或替换识别信息。例如,可以利用包括在正确的字体信息中的一个或多个特性来添加/替换替代字体的Postscript名称,从而替代字体的Postscript名称不再与冲突中所涉及的其它字体的Postscript名称冲突。在步骤605,可以修改文档以包括替代字体。例如,可以修改文档(一个或多个)以引用替代字体而不是原始的冲突字体。例如,如果在具有识别信息“Helvetica”的第一文档的第一字体和具有同样识别信息的第二文档的第二字体之间存在字体冲突,那么字体模块可以修改第一文档和/或第二文档。在一些方案中,如果字体模块为第一字体确定替代字体,那么字体模块可以修改第一文档(例如,确定替代字体并将其识别信息修改为“Helvetica123XYZ”)。相应地,字体模块可以修改第一文档,以便由替代字体的修改信息(例如,“Helvetica123XYZ”)替换对冲突信息“Helvetica”的任意引用。在其它方案中,如果字体模块为第二字体确定替代字体,那么字体模块可以修改第二文档(例如,确定替代字体并将其识别信息修改为“Helvetica_v3_0”)。相应地,字体模块可以修改第二文档,以便由替代字体的修改信息(例如,“Helvetica_v3_0”)替换对冲突信息“Helvetica”的任意引用。
在可选步骤607,可以激活字体冲突中涉及的字体。在一些实施例中,字体模块可以仅仅激活替代字体。在其它实施例中,字体模块可以激活字体冲突中涉及的任意和/或所有字体。在又一些其它方案中,字体模块可以仅仅激活当前在计算系统上未被激活的字体。另外,在一些方案中,如果替代字体还没有安装在计算系统中,那么字体模块可以在激活替代字体之前安装替代字体。在一些实施例中,步骤607是可选的,因为字体激活也许会在进一步处理文档时和/或期间发生。
本公开的多个方面因此可以在处理文档时给用户提供许多好处,所述用户例如是有创造力的专业人员或印前技师。例如,有创造力的专业人员打印多个文档可以避免对有哪些字体在系统上活动的担心,因为在文档打印之前可以防止文档之间的字体冲突。另外和/或做为选择,文档的批量打印可以自动化,而不管打印作业中的文档是否包含具有与运行操作系统所必需的系统字体相同的Postscript名称的字体。因此,多个文档可以同时打印或并行处理,即使文档包含冲突的字体。相应地,文档可以如有创造力的专业人员和/或设计者所预期的那样来打印。
此处列举的方法和特征可以进一步通过能够存储计算机可读指令的多种计算机可读介质来实现。可以使用的计算机可读介质的实例包括RAM、ROM、EEPROM、闪存或其它存储技术、CD-ROM、DVD或其它光盘存储器、磁带盒、磁带和磁存储器等等。
虽然已经描述和显示了本发明的特定实施例,但应该理解本发明不局限于此,因为本领域技术人员可以进行改变。本申请考虑了落入此处公开并要求保护的下面的发明的精神和范围内的任意和所有修改。
Claims (20)
1.一种或多种存储计算机可读指令的计算机可读介质,当所述计算机可读指令被执行时使装置:
识别与第一文档相关的第一字体;
识别在第一字体和第二字体之间的冲突;
为第一文档确定替代字体;
基于所述冲突修改替代字体的信息;以及
基于替代字体的已修改信息来修改第一文档的信息。
2.根据权利要求1所述的一种或多种计算机可读介质,其中确定替代字体包括:
将多种候选字体的特性和与第一文档相关的正确字体信息的特性相比较;以及
基于所述比较来从多种候选字体中选择出替代字体。
3.根据权利要求1所述的一种或多种计算机可读介质,进一步存储指令,当所述指令被执行时使所述装置:
在修改第一文档之前存储与所述冲突相关的信息,其中所述存储的信息包括与第一字体相关的信息和与第一文档相关的信息中的至少一个;以及
在进一步处理第一文档之后,基于所述存储的信息再次修改第一文档。
4.根据权利要求1所述的一种或多种计算机可读介质,其中识别所述冲突包括比较第一字体的识别信息和第二字体的识别信息。
5.根据权利要求4所述的一种或多种计算机可读介质,其中识别所述冲突包括确定出第一字体的识别信息和第二字体的识别信息是相同的。
6.根据权利要求4所述的一种或多种计算机可读介质,其中第一字体的识别信息是第一字体的TrueType名称和Postscript名称中的至少一个,并且第二字体的识别信息是第二字体的TrueType名称和Postscript名称中的至少一个。
7.根据权利要求2所述的一种或多种计算机可读介质,进一步存储指令,当所述指令被执行时使所述装置:
基于替代字体的已修改信息来激活替代字体;以及
利用替代字体来打印第一文档。
8.一种方法,包括:
由计算机识别与第一文档相关的第一字体;
由计算机识别在第一字体和第二字体之间的冲突;
为第一文档确定替代字体;
基于所述冲突修改替代字体的信息;以及
基于替代字体的已修改信息来修改第一文档的信息。
9.根据权利要求8所述的方法,其中,在计算系统中激活替代字体时,当处理第一文档时所述替代字体能被计算系统的应用程序访问。
10.根据权利要求8所述的方法,其中,确定替代字体包括:
将多种候选字体的特性和与第一文档相关的正确字体信息的特性相比较;以及
基于所述比较来从多种候选字体中选择出替代字体。
11.根据权利要求10所述的方法,进一步包括:
在修改第一文档之前存储与所述冲突相关的信息,其中所述存储的信息包括与第一字体和第一文档相关的至少一个信息;以及
在进一步处理第一文档之后,基于所述存储的信息再次修改第一文档。
12.根据权利要求8所述的方法,其中,识别所述冲突包括比较第一字体的识别信息和第二字体的识别信息。
13.根据权利要求12所述的方法,其中,识别所述冲突包括确定出第一字体的识别信息和第二字体的识别信息是相同的。
14.根据权利要求8所述的方法,进一步包括:
基于替代字体的已修改信息来激活替代字体;以及
利用替代字体来打印第一文档。
15.一种装置,包括:
至少一个处理器;以及
存储器,所述存储器操作地耦合到所述处理器并存储计算机可读指令,当所述指令被所述至少一个处理器执行时使所述装置:
识别与第一文档相关的第一字体;
识别在第一字体和第二字体之间的冲突;
为第一文档确定替代字体;
基于所述冲突修改替代字体的信息;以及
基于替代字体的已修改信息来修改第一文档的信息。
16.根据权利要求15所述的装置,其中确定替代字体包括:
将多种候选字体的特性和与第一文档相关的正确字体信息的特性相比较;以及
基于所述比较来从多种候选字体中选择出替代字体。
17.根据权利要求15所述的装置,其中修改与所述冲突相关的信息包括修改第一字体的识别信息并根据第一字体的已修改识别信息修改第一文档。
18.根据权利要求17所述的装置,其中所述存储器进一步存储计算机可读指令,当所述计算机可读指令被所述至少一个处理器执行时使所述装置:
在修改与所述冲突相关的信息之前存储与所述冲突相关的信息,其中所述存储的信息包括与涉及所述冲突的字体和涉及所述冲突的文档相关的信息中的至少一个;以及
在进一步处理第一文档之后,基于所述存储的信息再次修改第一文档。
19.根据权利要求15所述的装置,其中所述冲突基于将第一字体的识别信息和第二字体的识别信息比较和确定出第一字体的识别信息和第二字体的识别信息是相同的。
20.根据权利要求15所述的装置,其中所述存储器进一步存储计算机可读指令,当所述计算机可读指令被所述至少一个处理器执行时使所述装置:
基于第一字体的已修改识别信息来激活替代字体;以及
利用替代字体来打印第一文档。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/774,929 US9519625B2 (en) | 2010-05-06 | 2010-05-06 | Accurate font activation |
US12/774,929 | 2010-05-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102254155A true CN102254155A (zh) | 2011-11-23 |
CN102254155B CN102254155B (zh) | 2017-04-12 |
Family
ID=44476598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110187917.3A Active CN102254155B (zh) | 2010-05-06 | 2011-05-06 | 准确的字体激活 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9519625B2 (zh) |
EP (1) | EP2385469B1 (zh) |
JP (1) | JP5800262B2 (zh) |
CN (1) | CN102254155B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2772554A1 (en) * | 2012-03-19 | 2013-09-19 | Corel Corporation | Method and system for interactive font feature access |
US20140035927A1 (en) * | 2012-08-03 | 2014-02-06 | Celartem, Inc. | Methods, Computer Readable Media, and Apparatuses for Enabling Non-System Fonts |
US10042593B2 (en) * | 2016-09-02 | 2018-08-07 | Datamax-O'neil Corporation | Printer smart folders using USB mass storage profile |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6111654A (en) * | 1999-04-21 | 2000-08-29 | Lexmark International, Inc. | Method and apparatus for replacing or modifying a postscript built-in font in a printer |
US20030002063A1 (en) * | 2001-06-28 | 2003-01-02 | Hiroshi Oomura | Printing control apparatus and printing control method capable of accurately printing embedded font |
US20070263240A1 (en) * | 2006-05-10 | 2007-11-15 | Fuji Xerox Co., Ltd. | Image-Forming Apparatus, Image-Forming Control Method, Image-Forming Control Program Storage Medium, Image-Forming Control Data Signal, And Image-Forming Control Apparatus |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3285995B2 (ja) * | 1993-03-10 | 2002-05-27 | キヤノン株式会社 | 書体データ管理方法及び装置 |
JPH09146521A (ja) * | 1995-11-24 | 1997-06-06 | Canon Inc | 出力制御装置及び方法 |
JP2003058528A (ja) | 2001-05-31 | 2003-02-28 | Canon Inc | 文字処理装置および文字処理方法およびプログラム |
JP3962559B2 (ja) | 2001-06-28 | 2007-08-22 | キヤノン株式会社 | 印刷制御装置及び印刷制御方法 |
US7958448B2 (en) | 2005-10-25 | 2011-06-07 | Celartem, Inc. | Systems, methods, user interfaces, and computer-readable media for activating and managing fonts |
US20080024806A1 (en) | 2006-07-28 | 2008-01-31 | Extensis Inc. | In-process font activation |
JP2009086879A (ja) | 2007-09-28 | 2009-04-23 | Fuji Xerox Co Ltd | ページ記述言語処理装置及びページ記述言語処理プログラム |
-
2010
- 2010-05-06 US US12/774,929 patent/US9519625B2/en active Active
-
2011
- 2011-05-06 CN CN201110187917.3A patent/CN102254155B/zh active Active
- 2011-05-06 EP EP11165196.4A patent/EP2385469B1/en active Active
- 2011-05-06 JP JP2011103715A patent/JP5800262B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6111654A (en) * | 1999-04-21 | 2000-08-29 | Lexmark International, Inc. | Method and apparatus for replacing or modifying a postscript built-in font in a printer |
US20030002063A1 (en) * | 2001-06-28 | 2003-01-02 | Hiroshi Oomura | Printing control apparatus and printing control method capable of accurately printing embedded font |
US20070263240A1 (en) * | 2006-05-10 | 2007-11-15 | Fuji Xerox Co., Ltd. | Image-Forming Apparatus, Image-Forming Control Method, Image-Forming Control Program Storage Medium, Image-Forming Control Data Signal, And Image-Forming Control Apparatus |
Also Published As
Publication number | Publication date |
---|---|
US20110273734A1 (en) | 2011-11-10 |
JP2011238229A (ja) | 2011-11-24 |
EP2385469A2 (en) | 2011-11-09 |
US9519625B2 (en) | 2016-12-13 |
JP5800262B2 (ja) | 2015-10-28 |
CN102254155B (zh) | 2017-04-12 |
EP2385469B1 (en) | 2017-12-20 |
EP2385469A3 (en) | 2014-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109948134B (zh) | 一种报告自动生成方法、系统及电子设备和存储介质 | |
US10635744B2 (en) | File format agnostic document viewing, link creation and validation in a multi-domain document hierarchy | |
US6237144B1 (en) | Use of relational databases for software installation | |
JP4896444B2 (ja) | 電子ドキュメント内で特定のタイプのコンテンツを管理するための方法、装置、およびコンピュータ可読媒体 | |
JP4924976B2 (ja) | ソフトウェア開発支援システム | |
US20180067735A1 (en) | Installation of software onto a computer | |
US8381092B2 (en) | Comparing the content between corresponding cells of two tables separate from form and structure | |
CN101385011B (zh) | 用于提供以不可用字体格式化的文字元素的准确视觉再现的方法 | |
US20070240154A1 (en) | System and method for software integration and factory deployment | |
CN1829987B (zh) | 用于标签系统的词语数据库扩展 | |
US20160306612A1 (en) | Determining errors and warnings corresponding to a source code revision | |
CN105144088A (zh) | 元数据与源代码的关联以及基于其的应用和服务 | |
US20060080603A1 (en) | Method and apparatus for utilizing an object model to manage document parts for use in an electronic document | |
JP4917744B2 (ja) | ランタイムおよび設計でのテキスト変換と多言語サポートをするラベルシステム | |
US7778983B2 (en) | Application migration file scanning and conversion | |
CN101169718A (zh) | 用于实例化抽象类的系统和方法 | |
US10394756B2 (en) | System and method for customizing archive of a device driver generator tool for a user | |
WO2020259141A1 (zh) | 一种文件处理方法、装置及计算机设备 | |
JP2008052740A (ja) | マーク付けされたデータ・ブロックを伴う文書に対するスペル・チェックの方法および信号搬送媒体 | |
CN102254155A (zh) | 准确的字体激活 | |
US10592598B1 (en) | Book version mapping | |
CN111552466B (zh) | 工程文件生成方法、系统、计算机设备及存储介质 | |
CN117687681B (zh) | 一种低代码应用的版本管理方法及系统 | |
US11842126B2 (en) | System for generating a high-level product behavior document based on embedded information in functional blocks executed during runtime of source code | |
CN114089992A (zh) | 工程系统的构建方法及其构建装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |