首页> 中国专利> 用于提供以不可用字体格式化的文字元素的准确视觉再现的方法

用于提供以不可用字体格式化的文字元素的准确视觉再现的方法

摘要

方法和系统允许呈现使用不可用或受限字体格式化的文字元素。在一个实施例中,当生产包含受限字体的文档时,以受限字体格式化的文字部分被处理成替换表示。文字部分的文字表示和附加表示被嵌入在文档或容器中。受限字体文件的唯一表示允许消费计算系统试图本地查找受限字体。如果找到受限字体文件,每一文字表示使用其相应的受限字体来呈现。否则,使用附加表示。

著录项

  • 公开/公告号CN101385011A

    专利类型发明专利

  • 公开/公告日2009-03-11

    原文格式PDF

  • 申请/专利权人 微软公司;

    申请/专利号CN200680013479.6

  • 申请日2006-03-16

  • 分类号G06F15/00(20060101);

  • 代理机构31100 上海专利商标事务所有限公司;

  • 代理人顾嘉运

  • 地址 美国华盛顿州

  • 入库时间 2023-12-17 21:36:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-05-20

    专利权的转移 IPC(主分类):G06F15/00 变更前: 变更后: 登记生效日:20150430 申请日:20060316

    专利申请权、专利权的转移

  • 2011-09-28

    授权

    授权

  • 2009-05-06

    实质审查的生效

    实质审查的生效

  • 2009-03-11

    公开

    公开

说明书

技术领域

本发明涉及用于提供文字元素的准确视觉再现的方法和系统。

背景

字体类型可包括由被称为字体公司的公司所创造的各种类型。尽管某些公司 允许它们所创造的字体被自由分发或至少被嵌入在使用该字体创建的文档中,但其 它公司对于使用特定字体可以或不可以做的事情有所限制。一般而言,存在宽松定 义使用特定字体可以或不可以做的事情的不同级别限制。在一个级别上,字体可完 全不受限制,意味着可将其安装在客户机系统上、将其分发给他人以便安装等。然 而,在其它级别上,可能有各种类型的限制。例如,存在随之带有限制的某些字体, 仅当该用户是带有相关联的许可证的顾客时,它们才可被安装在该用户的客户机系 统上。在某些情况中,其它的限制可允许使用字体来打印,但不允许使用字体来做 其它事情,如打印预览。在其它情况中,完全限制将与字体相关联的字体文件嵌入 文档中。

这些及其它类型的限制可极大地抑制包含受限字体的特定文档的生产。

从而,因关注提供增强考虑到受限字体的文档的生产和消费的系统和方法而 提出本发明。

概述

在至少一个实施例中,描述了用于提供使用不可用字体格式化的文字元素的 准确视觉再现的革新的方法和技术。当产生包含一个或多个受限字体例如不可被嵌 入在文档或文档容器中的字体的文档时,字体文件不被嵌入在文档中,相反使用受 限字体格式化的文字部分被转换成替换表示。使用受限字体格式化的每一文字部分 的文字表示和一个或多个附加表示被嵌入在文档或文档容器中。每一受限字体文件 的唯一标识特征集与文字元素的文字表示相关联,从而允许计算系统呈现或消费文 档以试图在本地查找受限字体。如果受限字体文件可由计算系统使用,则每一文字 表示可使用其相应的受限字体被呈现成文字。或者,如果受限字体不可由计算系统 使用,则可呈现那一部分文字的诸附加表示的其中之一。以此方式,可获得包含具 有受限字体的一个或多个部分的文档的准确视觉再现。

附图简述

图1是可用于实现各个实施例的各个方面的计算系统的示意图。

图2例示了根据一个实施例的示例性字体文件的唯一标识特征集。

图3是描述根据一个实施例的方法中的各步骤的流程图。

图4例示了根据一个实施例的关联。

图5是描述根据一个实施例的方法中的各步骤的流程图。

图6是描述根据一个实施例的方法中的各步骤的流程图。

详细描述

概观

各个实施例描述并例示了用于提供文档或文档容器中的文字部分的准确再现 的方法和系统。描述了用于标识与该文字部分相关联的字体文件的手段。在一个实 施例中,该手段包括字体文件的唯一标识特征集。在下文将可以知道,该唯一标识 特征集可以或不可以被包括在包含可使用该字体文件呈现的文字部分的文字表示 以及该文字部分的一个或多个附加表示的关联中。

在一个实施例中,一种方法试图呈现或显示包含文档或文档容器的一部分的 文字部分。如果与该文字部分相关联的字体文件未被嵌入到文档或文档容器中,则 在至少某些实施例中,该方法试图使用该字体文件的唯一标识特征集来本地定位未 嵌入的字体文件的副本。在一个实施例中,唯一标识特征集被用于本地定位任何相 同名字的字体文件,然后确定如果找到任何这样的文件,则这样的文件在内容是否 与未被嵌入的字体文件相同。如果字体文件的副本在系统上本地可用,则可使用所 找到字体文件来呈现文字部分的文字表示。另一方面,如果字体文件的副本不可用, 则可呈现文字部分的替换或附加表示(诸如在上述关联中找到的)而不必利用字体 文件。

示例性计算机系统

图1示出了具有可用于实现以下所述的实施例中的一个或多个的组件的示例 性计算机系统。

计算机系统130包括一个或多个处理器或处理单元132、系统存储器134和将 包括系统存储器134在内的各种系统组件耦合至处理器132的系统总线136。总线 136表示若干类型的总线结构中的任一种或多种,包括存储器总线或存储器控制 器、外围总线、加速图形端口、和使用各种总线体系结构中的任一种的处理器或局 部总线。系统存储器134包括只读存储器(ROM)138和随机存取存储器(RAM) 140。基本输入/输出系统(BIOS)142包含有助于诸如启动时在计算机130中元件 之间传递信息的基本例程,它被存储在ROM 138中。

计算机130还包括向硬盘(未示出)读写的硬盘驱动器144、向可移动磁盘 148读写的磁盘驱动器146、以及用于向诸如CD ROM或其它光学介质的可移动光 盘152读写的光盘驱动器150。硬盘驱动器144、磁盘驱动器146、光盘驱动器150 由SCSI接口154或某个其它适当接口连接至总线136。驱动器及其相关联的计算 机可读介质为计算机130提供对计算机可读指令、数据结构、程序模块和其它数据 的非易失性存储。尽管此处描述的示例性环境采用硬盘、可移动磁盘148和可移动 光盘152,但本领域的技术人员应理解,也可在示例性操作环境中使用可存储计算 机可访问数据的其它类型的计算机可读介质,诸如磁带、闪存卡、数字视频盘、随 机存取存储器(RAM)、只读存储器(ROM)等。

多个程序模块可被存储在硬盘144、磁盘148、光盘152、ROM 138或RAM 140 上,包括操作系统158、一个或多个应用程序160、其它程序模块162和程序数据 164。用户可通过诸如键盘166和定点设备168的输入设备向计算机130输入命令 和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天 线、扫描仪等。这些和其它输入设备通过耦合至总线136的接口170连接至处理单 元132。监视器172或其它类型的显示设备也经由诸如视频适配器174的接口连接 至总线136。除监视器以外,个人计算机一般包括诸如扬声器和打印机等其它外围 输出设备(未示出)。

计算机130通常使用至一个或多个远程计算机如远程计算机176的逻辑连接 在网络化环境下操作。远程计算机176可以是另一个人计算机、服务器、路由器、 网络PC、对等设备或其它常见网络节点,且通常包括上文相对于计算机130描述 的许多或所有元件,尽管在图1中只示出存储器存储设备178。图1中所示逻辑连 接包括局域网(LAN)180和广域网(WAN)182。这样的联网环境在办公室、企 业范围计算机网络、内联网和因特网中是常见的。

当在LAN联网环境中使用时,计算机130通过网络接口或适配器184连接至 局域网180。当在WAN联网环境中使用时,计算机130通常包括调制解调器186 或用于在诸如因特网的广域网182上建立通信的其它装置。调制解调器186可以是 内置或外置的,它可以通过串行端口接口156连接至总线136。在网络化环境中, 相对于个人计算机130描述的程序模块或其部分可以存储在远程存储器存储设备 中。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链 路的其它手段。

一般而言,可借助于在不同时间存储在计算机内各个计算机可读存储介质中 的指令来对计算机130的数据处理器编程。程序和操作系统一般分布在例如软盘或 CD-ROM上。自此,它们可被安装或加载到计算机的辅助存储器中。在执行时, 它们至少部分被加载到计算机的主要电子存储器中。当计算机可读存储介质包含用 于结合微处理器或其它数据处理器来实现下述步骤的指令或程序时,此处描述的本 发明包括这些或其它类型的计算机可读存储介质。

为说明起见,诸如操作系统的程序和其它可执行程序组件此处被描述为离散 的块,尽管认识到,这样的程序和组件在不同时间驻留在计算机的不同存储组件中, 且由计算机的数据处理器执行。

唯一标识字体文件

图2在200处一般地例示根据一个实施例的示例性字体文件的唯一标识特征 集。在所示和所述示例中,该唯一标识特征集包括字体目录指示符210、字体文件 名指示符212和字体文件唯一标识符214。

在下文将可以知道,唯一标识特征集200提供可用于标识诸如本地计算设备 的计算设备上的字体文件的标识机制。例如,在生产包括使用具有阻止字体文件被 嵌入在文档或文档容器中的限制的字体文件格式化的部分的文档时,这将是有用 的。同样地,例如,在执行应用程序的计算系统试图呈现或消费包含利用该字体文 件的一个或多个文字部分的文档或文档容器,但该应用程序并不必然能够经由文档 或文档容器访问该字体文件时,这将是有用的。

通过在这样或其它环境中使用唯一标识特征集200,计算系统可试图本地查找 字体文件,且如将在以下所述,在字体文件不可用的情况中,仍试图使用替换手段 来为文档提供有意义且视觉上准确的呈现。

在所示和所述实施例中,字体目录指示符210以一般标准方式指定本地字体 目录。在试图呈现或消费文档或文档容器的计算系统上,字体目录指示符可采用任 何合适的指定的形式,如指向所关注的字体文件可能存储的位置的实际目录路径 名。然而,更一般地,字体目录指示符可采用用于查找或代替本地字体目录的指示 符的形式。例如,文档中的字体目录指示符可采用“[FONTDIR(字体目录)]”的 形式,呈现系统可将其替换为“c:\windows\fonts”。替换地或附加地,字体目录指 示符可采用统一资源标识符(URI)的部分或组成成分的形式,其示例将在以下提 供。

字体文件名指示符212指示用来格式化文字部分的字体文件的名字。例如, 如果所关注的文字部分是使用Arial字体格式化的,则字体文件名指示符可以是 “arial.tff”形式的。字体文件名指示符被配置成用于试图本地找到所关注的特定字 体文件,以便呈现或消费相关联的文字部分。

即使当计算系统上的本地字体文件的名字与用于格式化文字部分的字体文件 名相同时,该字体文件本身仍可以是该文件的不同版本,或者它可与原始使用的字 体文件不完全相同。因此,唯一标识符214允许计算系统查明文件名与所关注的字 体文件名相同的本地字体文件(如由字体文件名指示符所指示)是否确实是相同的 字体文件。

在所示和所述示例中,唯一标识符214可包括任何摘要、描述、表示或可用 于将一个字体文件与另一不完全相同的文件区分开的其它手段。在一个实施例中, 唯一标识符214包括唯一表示200所标识的字体文件的循环冗余校验和。如本领域 的技术人员所理解,替换或附加地,唯一标识符可以是文件的散列或区分文件的任 何其它合适的手段。

图3是描述用于唯一标识字体文件并提供字体文件的唯一表示的各步骤的流 程图。该方法可结合任何合适的硬件、软件、固件或其组合来实现。在所示示例中, 以软件实现该方法。

步骤300使用字体目录指示符指定本地字体目录。合适的字体目录指示符的 示例曾在以上给出。步骤310通过使用字体文件名指示符来指定字体文件名。以上 曾给出如何实现这一步骤的示例。步骤312为字体文件生成唯一标识符。合适的唯 一标识符的示例曾在以上给出。

步骤314通过组合字体目录指示符、字体文件名指示符和唯一标识符来形成 字体文件的唯一标识特征集。该步骤可按照任何合适的方式来实现。例如,在一个 示例性实施例中,唯一标识特征集采用统一资源标识符(URI)的形式。

在其中唯一标识特征集包括UIR的实施例中,定义一种新的URI方案,其中 文件字体目录指示符是URI的<scheme>成分,字体文件名指示符是URI是<path> 成分,唯一标识符是URI的<query>成分。例如,使用“localfont”作为<scheme>, 使用“arial.ttf”作为<path>并使用等于“12ad43DF”的字体文字的循环冗余校验和 作为<query>的URI可如下显现:

“localfont://arial.tff?12ad43DF”

可以理解和领会,可利用用于唯一标识字体文件并提供字体文件的唯一标识 特征集的任何合适的机制,而不背离所要求保护的主题的精神和范围。

构建关联

假定可如上所述唯一标识所关注的字体文件,则可采用此类唯一标识的字体 文件的一个领域是文档构建领域。具体地,在下文将可以知道,通过使用唯一标识 的字体文件,包含使用这样的字体文件格式化的文字的文档或文档容器可被构建或 装配,且在字体文件可能以某种方式受限的情况中,可为这样的文档的消费者提供 视觉上准确的替换方式。

图4在400处一般地例示根据一个实施例的关联或关联结构。在所示和所述 实施例中,关联包括文字的一个或多个文字表示410、一个或多个文字附加表示 412、以及可任选地用于标识与一个或多个文字部分相关联的一个或多个字体文件 的手段414。文字部分可包括整个文档和/或其较少部分。

在该示例中,文字表示410包括整个文字表示,其中通过使用与原始用于格 式化文字的字体文件相同的一个或多个字体文件,可将该文字表示呈现成文字。例 如,假定文字表示是使用一个字体文件呈现的,其中该字体文件具有阻止其被嵌入 到文档或文档容器中的限制。无论如何,该文字表示包含如果字体文件要被嵌入到 文档或文档容器中则可用于呈现文档的所有信息和/或数据。因此,关于文字表示 的假定是,即使使用了受限字体文件来格式化文字,且该字体文件不能被嵌入到文 档或文档容器中,但该字体文件仍可在要呈现或使用该文档的位置处适当可用。

除文字表示410以外,关联400包括文字表示410中所包含的一个或多个文 字部分的一个或多个附加或替换表示412。附加或替换表示可包含任何合适的表 示,诸如文字部分的图像表示,诸如位图或jpeg文件、或字符的矢量表示。此处, 附加或替换表示失去了字体字符,且不再被视为各个字符的链。相反,附加或替换 表示被视为不透明的实体。关于附加或替换表示的一个假定是,原始用于格式化文 档一部分且未被嵌入到文档或文档容器中的字体文件,在要呈现或消费该文档的位 置处并不一定可用。因此,在这种情况中,附加或替换表示提供了用于提供文档的 视觉再现的灵活的替换方式。特别地,在不存在所关注的字体文件时,可使用附加 或替换表示来代替文字表示。

除文字表示410和附加表示412以外,关联400可任选地包括用于标识曾被 用来格式化由文字表示410所描述的文字部分的一个或多个字体文件的手段414。 这样的手段的一个示例曾在以上结合图2描述。关于字体文件标识手段的假定如下 所示。在曾使用从相关联文档或文档容器不可用的字体文件格式化文字表示的情况 中,字体文件仍可在要呈现或使用文档的位置处适当可用。因此,通过提供可标识 不可用字体文件的机制,可进行本地搜索,且如果找到了字体文件,则它可在呈现 或消费过程中使用。否则,可使用替换或附加表示。

在关联400不包含字体文件标识手段414的情况中,可单独提供字体文件标 识手段供结合该关联使用。例如,关联400可包含诸如URL的标识符,它指向从 中可检索字体文件标识手段的位置。或者,在某些实施例中,可完全不提供字体文 件标识手段。相反,可使用一个或多个附加表示来代替与受限字体文件相关联的文 字表示。

图5是描述用于构建关联(如上述关联)的方法中的各步骤的流程图。该方 法可结合任何合适的硬件、软件、固件或其组合来实现。在所示示例中,该方法是 以软件实现的。

步骤500提供了文字部分的文字表示。该步骤可按照任何合适的方式执行。 在所示和所述实施例中,该步骤可通过按照可使用与原始用于准备文字的字体文件 相同的字体文件来呈现或消费文字的方式来提供文字的表示而执行。

步骤510提供文字部分的一个或多个附加表示。附加表示的特定示例曾在以 上提供。

步骤512使文字表示与一个或多个附加表示关联在一个关联中。这可按照任 何合适的方式实现。例如,文字部分的文字表示和该部分的位图图像可被关联以形 式文档或文档容器形式的关联。

步骤514提供用于标识与文字部分相关联的用于提供文字表示的字体文件的 手段。该步骤可按照任何合适的方式实现。以上在图2中曾描述一个这样的文字标 识手段。

消费文档或文档容器中所包含的关联

现在已描述了如何唯一标识诸如受限字体文件的字体文件,以及如何构建包 含或至少指示所唯一标识的字体文件的关联,以下讨论描述根据一个实施例如何消 费使用这样的关联。

图6是描述用于消费或呈现使用可就其使用有所限制的字体文件生产的文字 部分的方法中的各步骤的流程图。该方法可结合任何合适的硬件、软件、固件或其 组合来实现。

步骤600查明是否有可用的与文字部分相关联的字体文件。在一个实施例中, 关联,如包含文档或文档容器的关联,由将在其上消费该关联的计算设备接收。

步骤610查明字体文件在文档或文档容器中是否可用(例如,通过嵌入在文 档中或被包含在文档容器内)。如果字体文件可用,则步骤612即使用字体文件来 呈现文字。另一方面,如果字体文件不可用,则步骤614查明该字体文件是否在旨 在消费文档的计算设备上本地可用。执行该步骤的一种方式是通过使用字体文件的 唯一标识特征集在本地设备中搜索相关联的字体文件。以上曾提供唯一标识特征集 的示例。

如果字体文件本地可用,则步骤616使用本地可用的字体文件来呈现文字。 另一方面,如果字体文件本地不可用,则步骤618呈现替换文字标识。以上曾提供 替换文字标识的示例。

实现示例

可以理解和领会,上述实施例可按照任何合适的方式且在任何合适的环境中 实现。以下提供一个特定实现示例。

在一个实施例中,上述发明性原理可结合Microsoft的Metro文档格式来实现。 Metro文档技术在于2004年5月1日提交的题为“Document Mark Up Methods and Systems(文档标记方法和系统)”的共同待批准且共同转让的美国专利申请第 10/836,327号中描述。

简要地,Metro文档范例提供定义用于组成、打包、分发和呈现以文档为中心 的内容的一组构件块的框架和格式。该技术包括使用被称为包(相关部分的集合) 的逻辑实体将文档(或其它类型的内容)的所有片段聚集成一个对象。为了允许准 确地再现文档的文字部分,用于格式化该部分的原始字体文件(或其子集)的副本 被嵌入到Metro文档内。该原始字体文件通过指向Metro包(一个对象中文档的所 有片段的集合)中一部分(即,字体文件)的URI被标识。在字体文件未被嵌入 到Metro文档中的情况中,可利用上述方法来提供用于提供文档的准确视觉再现的 可工作选项。

具体地,通过采用上述唯一标识特征集,计算系统可查明与曾用于格式化 Metro文档中所包含的文字部分的字体文件相同的字体文件是否本地可用。如果与 曾用于格式化文字部分的字体文件相同的字体文件本地不可用,则仍可呈现该文字 部分的一个或多个附加表示。

在利用被称为可扩展应用程序标记语言(XAML)的分层的基于标签的语言 描述文档内容的Metro专用上下文中,可利用至少两个替换标记表示来描述该字体 文件的唯一标识特征集以及替换或附加表示。

以下描述假定至少某种程度地熟悉Metro格式和XAML。

首先,现有的<Glyphs>元素的扩展可用于通过添加引用替换位图图像的属性 来表示文字元素。从而,扩展的<Glyphs>元素标记可如下显示:

<Glyphs OriginX=”10”OriginY=”10”UnicodeString=”Hello!”

FontURI=”localfont://arial.ttf?12ad43DF”AlternateImage=”/images/glyphs1.gif”/>

此处,唯一标识特征集显现为使用“localfont:”URI方案的FontURI。 AlternateImage(替换图像)属性被添加,并引用文字部分的替换位图表示。

其次,现有的<Glyphs>元素可被包裹在外部控制结构中以在文字表示与替换 位图图像之间选择。在这种情况中,<Glyphs>元素不被修改。该方法的示例如下所 示。

<AlternateContent>

        <Choice Requires Resource=”localfont://arial.ttf?12ad43DF”>

               <Glyphs OriginX=”10”OriginY=”10”UnicodeString=”Hello!”

               FontURI=”localfont://arial.ttf?12ad43DF”>

        </Choice>

        <Fallback>

               <Image X=”10”Y=”10”ImageSource=”/images/glyphs1.gif”/>

        </Fallback>

</AlternateContent>

此处,基于<Choice>元素的“RequiresResource(请求资源)”所表示的外部 资源,即唯一表示的字体文件的可用性,<AlternateContent>结构在<Choice>和 <Fallback>元素之间作出选择。

在该特定实现示例中,正如本领域的技术人员所理解的那样,通过检查特定 文档中的每一文字元素或部分并通过检查字体头的OS/2表中的许可证权限位字段 来查明它是否利用了不可嵌入的字体来生产文档。如果该字体可自由嵌入,则该字 体被嵌入在文档包中,且该部分的名字按照常规方式被包括在文字标记中。另一方 面,如果该字体不可自由嵌入,则创建“localfont:”URI来表示字体文件。此外, 标记被发放,并在替换表示(例如,位图图像)与文字表示之间作出选择。此外, 使用所创建的“localfont:”URI为文字元素的替换表示和文字表示发放标记。

在消费方面,分析文档标记,且如果遇到在替换表示和文字表示之间进行选 择,则检查该字体文件所指定的URI。如果它是“localfont:”URI,则进行以下操 作。首先,作出关于URI的<path>部分中所标识的字体文件是否在本地系统上可 用的判断。如果它存在,则计算本地可用字体文件的CRC-32,且将其与标记中所 包含的CRC-32进行比较。如果CRC-32与URI<query>中所指定的CRC-32匹配, 则使用本地可用的字体文件来呈现文字标识。如果该字体文件不存在,或CRC-32 不匹配,则使用替换标识来呈现过程。

结论

上述各个实施例可允许呈现文档的准确视觉再现,即使原始用于格式化文档 的一个或多个字体从文档或相关联的文档容器本身不可用。以此方式,在该文档文 件中仍可发现标记文档的文字。这允许诸如复制/粘贴、屏幕阅读器的可访问性、 搜索等功能。此外,如果在文档文件外部提供与曾用于格式化文字的字体文件相同 的字体文件,则可使用原始字体表示来呈现文字,这可能比替换表示(例如,位图 图像表示)的质量高得多。

尽管使用结构特征和/或方法步骤专用的语言描述了本发明,但可以理解, 所附权利要求书中定义的本发明不必限于所述特定特征或步骤。相反特定特征 和步骤作为实现所要求保护的本发明的优选形式而被公开。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号