用于在线显示文档的方法和装置的制造方法
【技术领域】
[0001] 本发明的各实施方式涉及文档显示,更具体地,涉及用于在线显示文档的方法和 装置。
【背景技术】
[0002] 随着计算机技术的发展,除了数据传输W外,可W经由网络提供越来越强大的功 能。例如,云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。此时,用户不必购买高性能的计算设备并且在该计算设备上安装各种应用程序 W满足自身需求,而是可W经由云来获取所需的各种资源和服务。
[0003] 例如,用户不必在本地计算机上安装文档编辑器,而是可W通过网络服务提供者 提供的在线文档编辑器,来基于浏览器在线地查看并编辑文档。另外,随着计算设备小型化 W及多样化的趋势,越来越多的用户倾向于使用便携式计算设备(诸如,平板式计算机、智 能电话、个人数字助理等)来查看和编辑文档。由于便携式计算设备的硬件配置通常较低, 如何在便携式计算设备上提供在线文档编辑器成为一个研究方向。
[0004] 尽管目前已经开发出了基于浏览器的在线文档编辑器,然而,该些编辑器通常显 示效率较低并且不能W用户期望的速度显示文档内容,显示文档期间的较大延迟导致了较 差的用户体验。因而,如何提高在线文档编辑器的显示效率成为一个亟待解决的问题。
【发明内容】
[0005] 因而,期望能够开发出一种能够高效地在线显示文档的技术方案,并且期望该技 术方案可W与现有的基于浏览器的在线文本编辑器相兼容,W便实现在各种计算设备(尤 其是便携式计算设备)上提供高性能的在线显示。
[0006] 在本发明的一个实施方式中,提供了一种用于在线显示文档的方法,包括;从文档 中提取多个数据对象;通过构造与多个数据对象相关联的文档对象模型值ocument化ject Model,DOM),获取多个数据对象中的相应数据对象的大小;基于大小生成布局存储库;W 及基于布局存储库来呈现(render)多个数据对象,W在线显示文档。
[0007] 在本发明的一个实施方式中,多个数据对象中的数据对象是基于与数据对象相关 联的文本内容和样式来唯一地标识的。
[0008] 在本发明的一个实施方式中,通过构造与多个数据对象相关联的文档对象模型、 获取多个数据对象中的相应数据对象的大小包括:基于与多个数据对象相关联的文本内容 和样式,构造文档对象模型;W及利用浏览器呈现文档对象模型,W获取多个数据对象中的 相应数据对象的大小。
[0009] 在本发明的一个实施方式中,提供了一种用于在线显示文档的装置,包括;提取模 块,配置用于从文档中提取多个数据对象;获取模块,配置用于通过构造与多个数据对象相 关联的文档对象模型,获取多个数据对象中的相应数据对象的大小;生成模块,配置用于基 于大小生成布局存储库;W及显示模块,配置用于基于布局存储库来呈现多个数据对象,W 在线显示文档。
[0010] 在本发明的一个实施方式中,多个数据对象中的数据对象是基于与数据对象相关 联的文本内容和样式来唯一地标识的。
[0011] 在本发明的一个实施方式中,获取模块包括:构造模块,配置用于基于与多个数据 对象相关联的文本内容和样式,构造文档对象模型;W及大小获取模块,配置用于利用浏览 器呈现文档对象模型,W获取多个数据对象中的相应数据对象的大小。
[0012] 采用本发明所述的方法和装置,提高在线显示文档的效率,减少用户等待时间进 而改善用户体验。
【附图说明】
[0013] 通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述W及其 他目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号 通常代表相同部件。
[0014] 图1示意性示出了适于用来实现本发明实施方式的示例性计算机系统/服务器的 框图;
[0015] 图2示意性示出了一个示例性的云计算环境;
[0016] 图3示意性示出了云计算环境50(图2)提供的一组功能抽象层;
[0017] 图4示意性示出了根据本发明一个实施方式的用于在线显示文档的技术方案的 架构图;
[0018] 图5示意性示出了根据本发明一个实施方式的用于在线显示文档的方法的流程 图;
[0019] 图6A-图6B分别示意性示出了根据本发明一个实施方式的在页面中放置数据对 象的不意图;
[0020] 图7示意性示出了根据本发明一个实施方式的在线显示的文档的页面的示意图; W及
[0021] 图8示意性示出了根据本发明一个实施方式的用于在线显示文档的装置的框图。
【具体实施方式】
[0022] 下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开 的优选实施方式,然而应该理解,可WW各种形式实现本公开而不应被该里阐述的实施方 式所限制。相反,提供该些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的 范围完整的传达给本领域的技术人员。
[0023] 首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案 的实现却不限于云计算环境,而是能够结合现在已知或W后开发的任何其他类型的计算环 境而实现。
[0024] 云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的 网络访问。可配置计算资源是能够W最小的管理成本或与服务提供者进行最少的交互就能 快速部署和释放的资源,例如可W是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟 机和服务。该种云模式可W包括至少五个特征、至少H个服务模型和至少四个部署模型。
[0025] 特征包括:
[0026] 按需自助式服务;云的消费者在无需与服务提供者进行人为交互的情况下能够单 方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
[0027] 广泛的网络接入;计算能力可W通过标准机制在网络上获取,该种标准机制促进 了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字 助理PDA)对云的使用。
[0028] 资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服 务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况 下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可W在较高抽象程度上 指定位置(例如国家、州或数据中也),因此具有位置无关性。
[0029] 迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,W实现快速扩展, 并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的, 并能在任意时候都能获取任意数量的计算能力。
[0030] 可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户 账号)的某种抽象程度的计量能力,自动地控巧师优化资源效用。可W监巧1|、控巧师报告资 源使用情况,为服务提供者和消费者双方提供透明度。
[0031] 服务模型如下:
[0032] 软件即服务(Saa巧:向消费者提供的能力是使用提供者在云基础架构上运行的 应用。可W通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户 机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包 括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
[0033] 平台即服务(Paa巧:向消费者提供的能力是在云基础架构上部署消费者创建或 获得的应用,该些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不 控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制 权,对应用巧管环境配置可能也具有控制权。
[0034] 基础架构即服务(laa巧:向消费者提供的能力是消费者能够在其中部署并运行 包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理 也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的 网络组件(例如主机防火墙)可能具有有限的控制权。
[003引部署模型如下:
[0036] 私有云;云基础架构单独为某个组织运行。云基础架构可W由该组织或第H方管 理并且可W存在于该组织内部或外部。
[0037] 共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、 安全要求、政策和合规考虑)的特定共同体。共同体云可W由共同体内的多个组织或第H 方管理并且可W存在于该共同体内部或外部。
[0038] 公共云:云基础架构向公众或大型产业群提供并由出售云服
务的组织拥有。
[0039] 混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组 成,该些云依然是独特的实体,但是通过使数据和应用能够移植的标准化技术或私有技术 (例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
[0040]云计算环境是面向服务的,特点集中在无状态性、低禪合性、
[0041] 模块性和语意的互操作性。云计算的核也是包含互连节点网络的基础架构。
[0042] 现在参考图1,其中显示了云计算节点的一个例子。图1显示的云计算节点10仅 仅是适合的云计算节点的一个示例,不应对本发明实施方式的功能和使用范围带来任何限 巧||。总之,云计算节点10能够被用来实现和/或执行W上所述的任何功能。
[0043] 云计算节点10具有计算机系统/服务器12,其可与众多其他通用或专用计算系 统环境或配置一起操作。众所周知,适于与计算机系统/服务器12 -起操作的计算系统、 环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚 客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电 脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等 等。
[0044] 计算机系统/服务器12可W在由计算机系统执行的计算机系统可执行指令(诸 如程序模块)的一般语境下描述。通常,程序模块可W包括执行特定的任务或者实现特定 的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12 可W在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实施。在分布式 云计算环境中,程序模块可W位于包括存储设备的本地或远程计算系统存储介质上。
[004引如图1所示,云计算节点10中的计算机系统/服务器12W通用计算设备的形式 表现。计算机系统/服务器12的组件可W包括但不限于:一个或者多个处理器或者处理单 元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0046] 总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器, 外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举 例来说,该些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC) 总线,增强型ISA总线、视频电子标准协会(VESA)局域总线W及外围组件互连(PCI)总线。
[0047] 计算机系统/服务器12典型地包括多种计算机系统可读介质。该些介质可W是 能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可 移动的和不可移动的介质。
[0048] 系统存储器28可W包括易失性存储器形式的计算机系统可读介质,例如随机存 取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可W进一步包括其 他可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34 可W用于读写不可移动的、非易失性磁介质(图1未显示,通常称为"硬盘驱动器")。尽管 图1中未示出,可W提供用于对可移动非易失性磁盘(例如"软盘")读写的磁盘驱动器, W及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其他光介质)读写的光盘驱动器。 在该些情况下,每个驱动器可W通过一个或者多个数据介质接口与总线18相连。存储器28 可W包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,该些程序模 块被配置W执行本发明各实施方式的功能。
[0049] 具有一组(至少一个)程序模块42的程序/实用工具40,可W存储在存储器28 中,该样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其他程序模块W 及程序数据,该些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通 常执行本发明所描述的实施方式中的功能和/或方法。
[0050] 计算机系统/服务器12也可W与一个或多个外部设备14(例如键盘、指向设备、 显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的 设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其他计算设备进行通 信的任何设备(例如网卡,调制解调器等等)通信。该种通信可W通过输入/输出(I/ 0) 接口 22进行。并且,计算机系统/服务器12还可W通过网络适配器20与一个或者多个网 络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络 适配器20通过总线18与计算机系统/服务器12的其他模块通信。应当明白,尽管图中未 示出,其他硬件和/或软件模块可W与计算机系统/服务器12 -起操作,包括但不限于: 微代码、设备驱动器、兀余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器W及数据备 份存储系统等。
[0051]现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包 括云计算消费者使用的本地计算设备可W与其相通信的一个或者多个云计算节点10,本地 计算设备例如可W是个人数字助理(PDA)或移动电话54A,台式电脑54B、笔记本电脑54C 和/或汽车计算机系统54N。云计算节点10之间可W相互通信。可W在包括但不限于如上 所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计 算节点10进行物理或虚拟分组(图中未显示)。该样,云的消费者无需在本地计算设备上 维护资源就能请求云计算环境50提供的基础架构即服务(laa巧、平台即服务(Paa巧和/ 或软件即服务(Saa巧。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算 节点10W及云计算环境50可W与任意类型网络上和/或网络可寻址连接的任意类型的计 算设备(例如使用网络浏览器)通信。
[0052]现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应 当理解,图3所示的组件、层W及功能都仅仅是示意性的,本发明的实施方式不限于此。如 图3所示,提供下列层和对应功能:
[0053] 硬件和软件层60包括硬件和软件组件。硬件组件的例子包括;主机,例如 IBM⑩zSeries⑥系统;基于RISC(精简指令集计算机)体系结构的服务器,例如 IBMpSeries⑥系统;IBMxSeries⑥系统;IBMBladeCenter?系统;存储设备;网络和 网络组件。软件组件的例子包括:网络应用服务器软件,例如IBMWebSphere⑥应用服 务器软件;数据库软件,例如IBMDB2⑩数据库软件。(IBM,zSeries,DSeries,xSeries, BladeCenter,Webs地ereW及DB2是国际商业机器公司在全世界各地的注册商标)。
[0054] 虚拟层62提供一个抽象层,该层可W提供下列虚拟实体的例子;虚拟服务器、虚 拟存储、虚拟网络(包括虚拟私有网络)、虚拟应用和操作系统,W及虚拟客户端。
[00巧]在一个示例中,管理层64可W提供下述功能;资源供应功能:提供用于在云计算 环境中执行任务的计算资源和其他资源的动态获取;计量和定价功能:在云计算环境内对 资源的使用进行成本跟踪,并为此提供账单和发票。在一个例子中,该资源可W包括应用软 件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其他资源提供保护。用户 口户功能:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能:提供云 计算资源的分配和管理,W满足必需的服务水平。服务水平协议(SLA)计划和履行功能:为 根据SLA预测的对云计算资源未来需求提供预先安排和供应。
[0056] 工作负载层66提供云计算环境可能实现的功能的示例。在该层中,可提供的工作 负载或功能的示例包括:地图绘制与导航;软件开发及生命周期管理;虚拟教室的教学提 供;数据分析处理;交易处理;W及在线文档显示处理。
[0057] 在本发明的一个实施方式中,可W在工作负载层66处实现根据本发明的各个实 施方式的在线显示文档的方案,W便在云计算环境中可W方便地向用户提供在线显示文档 的工具,使得用户在本机中没有安装文档编辑器的情况下,通过调用浏览器即可方便地查 看和编辑文档。在上文中示意性示出了本发明的应用环境,本领域技术人员应当理解,还可 W结合现在已知或W后开发的任何其他类型的计算环境而实现本发明的各个实施方式。
[0058] 在数据显示领域中,常规的文档编辑器(例如,在计算机上安装的文档编辑器)可 W通过调用操作系统的应用编程接口(ApplicationProgrammingInte;rface,API)来直接 获得待显示文档中的每个词语的大小(即,在页面中W多少个像素来显示该
词语)。然而, 不同于在常规文档编辑器中的实现方式,在浏览器中在线显示文档时所面临的问题是,目 前并不存在直接获得待显示文档中的每个词语的大小的API,而是只能借助于文档对象模 型来获取该大小。
[0059] 目前已经提出了用于在浏览器中在线显示文档的技术方案。当在浏览器中在线显 示文档时,由于浏览器基于文档对象模型来呈现页面的内容,因而在浏览器中在线显示文 档时,该些技术方案逐个地获取文档中的每个词语在显示页面中的大小,继而进行显示。
[0060] 为了获取每个词语的大小,目前的技术方案通常按照文档中词语的顺序,基于文 档对象模型来逐个地计算每个词语的大小。尽管可W设置存储空间来缓存所计算的大小, W便再次呈现相同的词语时无需重新计算该词语的大小,然而该种显示方式的效率并不高 并且可能造成显示的延迟。对于具有有限硬件资源的便携式计算设备而言,显示期间的延 迟更为显著。
[0061]为了解决现有技术中的不足,本发明提供了一种用于在线显示文档的技术方案。 采用本发明所述的技术方案,可W在呈现步骤之前通过预处理步骤来获取文档中的各个词 语的长度,因而在呈现步骤期间可W直接基于在预处理步骤中所获得的长度来呈现相应的 词语,而不必在每次呈现之前都基于文档对象模型来获取该词语的大小。
[0062] 具体地,图4示意性示出了根据本发明一个实施方式的用于在线显示文档的技术 方案的架构图400。如图4所示,文档410表示待显示的文档,可W从文档410中提取各个 数据对象、获取各个数据对象的大小,并将相应的大小存储在布局存储库420中;继而,可 W直接基于布局存储库420中的数据来在线地显示文档(如显示页面430所示)。
[0063] 应当注意,在本发明的上下文中,数据对象可W指文档中的文本对象,例如,文档 中的标题、正文、词语、标点符号等都可W称为文本对象。对于文档中出现的其他类型的数 据对象,可W采用其他方式来获取该对象的大小。具体地,图像对象具有固定的大小(即, 分辨率),因而可W该固定大小显示图像对象即可。表格对象可W分为固定大小的表格和可 变大小的表格,对于固定大小的表格,可W直接W该固定大小显示;对于可变大小的表格, 表格的大小依赖于表格中的文本对象的大小,因而可W基于如本发明的方法来首先确定文 本对象表格的大小继而再确定表格对象的大小。另外,诸如空格、标点符号和其他特殊字 符,都属于本发明中文本对象的含义,因而可W采用本发明的方法来显示。
[0064] 在本发明的一个实施方式中,提供了一种用于在线显示文档的方法,包括;从文档 中提取多个数据对象;通过构造与多个数据对象相关联的文档对象模型,获取多个数据对 象中的相应数据对象的大小;基于大小生成布局存储库;W及基于布局存储库来呈现多个 数据对象,W在线显示文档。
[0065] 具体地,如图5示意性示出了根据本发明一个实施方式的用于在线显示文档的方 法的流程图500。在步骤S502中,从文档中提取多个数据对象。本领域技术人员可W基于 现有技术中的各种方法来从文档中提取数据对象。在本发明的上下文中,数据对象可W包 括文档中的词语或者符号。假设文档中包括"化11〇World!",则可W认为该文档中包括4 个对象,即分别为"化11〇"、"空格"、"World"和"!"。
[0066] 对于W不同语言书写的文档,数据对象可W具有不同的含义,例如,在W中文书写 的文档中,可W认为每个汉字是一个数据对象;在W英文或者法文书写的文档中,可W认为 每个词是一个对象,等等。由于浏览器支持多语言功能,因而本发明的技术方案也可W支持 在多语言环境下在线显示文档。
[0067] 接着,在步骤S504中,通过构造与多个数据对象相关联的文档对象模型,获取多 个数据对象中的相应数据对象的大小。应当注意,由于在浏览器中显示的内容是经由文档 对象模型来实现的,因而需要首先构造与待显示内容相关联的文档对象模型,继而才能基 于该模型获取在浏览器中将W多少像素来显示相应的数据对象。在本发明的上下文中,数 据对象的大小是指当在线显示时该数据对象的大小,即,该数据对象在一行中所占据的像 素数量。
[0068] 可选地,在构造文档对象模型之前,可W首先对所提取的多个数据对象进行过滤。 通过过滤掉重复的数据对象,可W减少数据对象的数量并且提高处理效率。应当注意,对于 英语而言,应当区分词语中字母的大小写,并且仅在两个词语中的各个字母的大小写完全 一致的情况下,才认为两个词语是重复的数据对象。例如,"化11〇"和"hello"将被认为是 不同的数据对象。
[0069] 在步骤S506中,基于大小来生成布局存储库。在此步骤中,可W保存文档中的各 个数据对象的大小,例如对于上文所述的"HelloWorld!,,而言,可W采用如下文表1所示 的数据结构来存储布局存储库。
[0070] 表1布局存储库的示例1
[0071]
[0072] 在步骤S508中,基于布局存储库来呈现多个数据对象,W在线显示文档。在此实 施方式中,可W基于如上文表1中记录的长度,按顺序地显示每个数据对象。此时,在页面 中将显示内容"HelloWorld!",并且该内容占用20巧+25+5=55个像素。
[0073] 在本发明的一个实施方式中,多个数据对象中的数据对象是基于与该数据对象相 关联的文本内容和样式来唯一地标识的。在上文的具体示例中仅仅示出了基于数据对象的 文本内容来区分各个数据对象的情况,由于数据对象的大小不但依赖于数据对象的文本内 容,还依赖于该数据对象的样式,因而可W考虑基于数据对象的文本内容和样式两者来唯 一地标识数据对象。
[0074] 在此实施方式中,可二元组(文本内容,样式)来表示一个数据对象。W此方 式,化ello,粗体)和化ello,斜体)将表示不同的数据对象。在本发明的上下文中,样式 可W包括W下中的至少任一项;字体、字号、粗体、斜体、上标、下标、标题、W及正文。因而当 样式包括多项时,上文所述的二元组可W被扩展至多元组,例如,化ello,粗体,8号)可W 表示W8号粗体字显示化11〇。在考虑到数据对象的文本内容和样式两者的情况下,例如, 可W采用如下文表2所示的数据结构来存储布局存储库。
[0075] 表2布局存储库的示例2
[0076]
防)77] 为了进一步提高数据处理效率,还可W按照文档中的数据对象的样式来将数据对 象进行分组,继而针对所得的多个分组中的每个分组中的各个数据对象,按照如上文所述 的方式来获取用于在线显示各个数据对象的大小。
[0078] 在本发明的一个实施方式中,所述通过构造与所述多个数据对象相关联的文档对 象模型、获取所述多个数据对象中的相应数据对象的大小包括:基于与所述多个数据对象 中的数据对象相关联的样式,将所述多个数据对象划分为多个分组;针对每个分组,基于与 该分组中的至少一个数据对象相关联的文本内容和样式,构造与该分组中的至少一个数据 对象相关联的文档对象模型,由此构造与所述多个数据对象相关联的所述文档对象模型; W及利用浏览器呈现所述文档对象模型,W获取所述多个数据对象中的相应数据对象的大 小。
[0079] 应当注意,样式可W包括inlinestyle(内联样式)。例如,对一个段落应用"标 题"样式之后,该段落内所有的内容都是加粗的,但是还可W对该段落内的部分内容设置 斜体,去除加粗属性。因而在计算对象的大小之前先要得到该对象的最终样式,通过样 式层级关系W及优先级排列计算得出最终样式。计算的过程中可W仅仅考虑影响数据 对象的大小的样式(例如,字体、字号、粗体、斜体、上标、下标、标题、W及正文),而忽略 无关样式(例如,下划线、删除线、字体颜色、背景颜色等)。假设文档中内容为"Hello wordlword2world",该文档中的数据对象的样式可WW如下方式表示:
[0080]
[00引]对于上文的示例,"化llo"的样式如S2所定义,其中S2继承了SI的样式。"world" 用自定义的字号"20"覆盖了S2样式。按照如上文所述的基于样式来进行分组的方法,可 W将"化ll〇"、"wordl"和"word2"划分至第一分组,而将"world"划分至第二分组。此时, "Hello"、"wordl"和 "word2"的样式为 "font-size;lOpt;bold;true"。
[0082] 在本发明的一个实施方式中,通过构造与多个数据对象相关联的文档对象模型、 获取多个数据对象中的相应数据对象的大小包括:基于与多个数据对象相关联的文本内容 和样式,构造文档对象模型;W及利用浏览器呈现文档对象模型,W获取多个数据对象中的 相应数据对象的大小。
[008引在此实施方式中,可W利用
按照上述方法获得的"Hello"、"wordl"、"word2"、W及 "world"的样式来和文本内容来构造与该些数据对象相关联的文档对象模型。具体地,由于 在上文中已经按照数据对象的样式将数据对象划分为多个分组,因而可W针对每个分组中 的各个数据对象,来进行相应处理。具体地,针对第一分组中的数据对象"Hello"、"wordl"、 "word2",可W采用如下方法来构造文档对象模型。
[0084]
[0085] 应当注意,上文仅仅示意性地示出了如何构造文档对象模型的一个具体实施方 式,上述示例仅仅是示意性而并非限制性的,本领域技术人员还可W采用其他方式来实现。 另外,尽管上文仅仅示出了针对第一分组中的数据对象来构造相应的文档对象模型的方 法,本领域技术人员还可W基于示出的原理,来针对第二分组中的数据对象进行处理。
[0086]另外,将多个数据对象按照样式来划分分组目的在于提高数据处理效率,然而,该 步骤并非必选步骤,而是用于提高效率的可选步骤。本领域技术人员还可w在不划分分组 的情况下,直接处理从文档中提取的多个数据对象。
[0087] 由于在浏览器中显示数据对象的像素数量是与文档对象模型相关联的,在已经获 得文档对象模型的情况下,可W利用浏览器呈现该文档对象模型W便获取相应数据对象的 大小。具体地,在本发明的一个实施方式中,利用浏览器呈现文档对象模型,W获取多个数 据对象中的相应数据对象的大小进一步包括:利用浏览器的应用编程接口来获取多个数据 对象中的相应数据对象的大小。
[0088] 可W利用浏览器的应用编程接口来获取各个数据对象的大小。具体地,可W采用 如下方式来实现:
[0089]
[0090] 在上文中,已经针对每个数据对象创建了文档对象模型的相应节点,此时仅需要 调用浏览器的应用编程接口来获取每个节点的大小,即可获得在浏览器中显示的每个数据 节点所占用的像素数。在此具体示例中,使用existDOMNode.get化ild(i).size来获取每 个数据对象的大小。类似地,本领域技术人员还可W基于上述示例的原理,来针对其他分组 中的数据对象进行处理。
[0091] 在本发明的一个实施方式中,基于布局存储库来呈现多个数据对象,W在线显示 文档包括:基于布局存储库,按照用于在线显示文档的页面宽度来逐行地呈现多个数据对 象,W在线显示文档。
[0092] 由于可W获取在线显示的文档的页面宽度,并且在先前的预处理步骤中已经存储 了文档中的数据对象的大小,因而可W按顺序将文档中的各个数据对象依次放置在每一行 中,W便在线显示文档。当一行中的剩余空间不足W容纳文档中的下一数据对象(即,剩余 像素数小于下一数据对象的大小)时,则可W创建新的行,并将该下一数据对象放置到该 新的行的第一个位置。
[0093] 具体地,图6A-图6B分别示意性示出了根据本发明一个实施方式的在页面中放置 数据对象的示意图600A-600B。如图6A所示,示出将文档中的多个数据对象逐个放置到一 行中的相应位置的示意图。页面宽度W参考数字610A示出,如第i行620A所示,在第i行 中依次放置了数据对象1至数据对象N,并且在已经放置了数据对象N之后,在第i行中所 剩余的空间不足W容纳数据对象化1时,创建新的行(第i+1行630A)。接着,可W将数 据对象化1放置在第i+1行的起始位置。W此方式,可W按顺序依次处理文档中包括的每 个数据对象。
[0094] 应当注意,由于"空格"也属于文本数据,因而针对"空格"的处理可W遵循本发明 的方法,而无需进行特殊处理。另外,当遇到表示"回车"的数据对象时,可W创建新的段落 并且在新的一行中放置"回车"之后的数据对象。
[0095] 应当注意,由于在文档的布局中还涉及"对齐模式",因而在浏览器中显示文档时 还需要考虑"对齐模式"对于文档的显示效果的影响。常规的对齐模式可W包括;左对齐、 右对齐、居中W及两端对齐。
[0096] 在本发明的一个实施方式中,进一步包括:针对在线显示的文档中的一行内的至 少一个数据对象,计算页面宽度与至少一个数据对象的大小之间的差异;W及按照差异W 及文档的对齐模式,在该行内放置至少一个数据对象。在左对齐中,可W将页面宽度与多个 数据对象之间的差异(即,空白空间)放置在一行的右侧,W便实现左对齐模式(如图6A 所示)。在上文中已经参见图6A的示例描述了如何实现左对齐,本领域技术人员可W基于 所示的原理来自行实现右对齐和居中的对齐模式。
[0097] 在本发明的一个实施方式中,按照差异W及文档的对齐模式,在行内放置至少一 个数据对象包括:划分差异W在行内均匀地放置至少一个数据对象。图6B示意性示出了实 现两端对齐的框图。在此示例中,可W将差异均匀地分布在各个数据对象之间,W便实现两 端对齐。具体地,假设页面宽度为800,每个数据对象的大小为80,并且在一行中可W显示 9个数据对象(假设第10个数据对象的大小大于80),此时页面宽度与全部数据对象大小 之间的差异为800-80X90=80,即,将9个数据对象逐个放置到一行中时将剩余80像素的空 间。此时可W将该80像素平均地分配到9个数据对象之间的位置,从而W两端对齐的方式 在一行中显示9个数据对象。此时,在第1-80像素的位置显示第1个数据对象,在第81-90 像素的位置处显示空白,在第91-170像素的位置处显示第2个数据对象,W此类推。
[0098] 图7示意性示出了根据本发明一个实施方式的在线显示的文档的页面的示意图 700。按照如上文所述的方法,可W经由浏览器在在线文本编辑器中显示文档。如图7所示, 在710处示出了文档的一级标题,该标题W18号字体居中显示;在720处示出了文档的二 级标题,该标题W14号字体居中显示;在730处示出了文档的正文内容,W14号字体左对 齐显不。
[0099] 采用上文所述的本发明的各种实施方式,通过在呈现步骤之前执行预处理步骤, 可W快速、高效地获取文档中的各个数据对象的大小,并将相应的大小存储至布局存储库 中。继而在后续的呈现步骤中,可W快速获取文档中的每个数据对象的大小,并且实现高效 率的绘制。此外,通过基于数据对象的样式而将多个数据对象划分至多个分组,并且针对每 个分组中的数据对象进行处理,可W进一步提高数据处理效率。
[0100] 前面已经参考附图描述了实现本发明的方法的各个实施方式。本领域技术人员可 W理解的是,上述方法既可WW软件方式实现,也可WW硬件方式实现,或者通过软件与硬 件相结合的方式实现。并且,本领域技术人员可W理解,通过W软件、硬件或者软硬件相结 合的方式实现上述方法中的各个步骤,可W提供一种基于相同发明构思的一种设备。即使 该设备在硬件结构上与通用处理设备相同,由于其中所包含的软件的作用,使得该设备表 现出区别于通用处理设备的特性,从而形成本发明的各个实施方式的设备。本发明中所述 设备包括若干装置或模块,所述装置或模块被配置为执行相应步骤。本领域的所述技术人 员通过阅读本说明书可W理解如何编写程序实现所述装置或模块执行的动作。由于所述设 备与方法基于相同的发明构思,因此其中相同或相应的实现细节同样适用于与上述方法对 应的装置或模块,由于其在上文中已经进行了详细和完整的描述,因此在下文中可能不再 进行费述。
[0101] 图8示意性示出了根据本发明一个实施方式的用于在线显示文档的装置的框图 800。具体地,提供了一种用于在线显示文档的装置,包括:提取模块810,配置用于从文档 中提取多个数据对象;获取模块820,配置用于通过构造与多个数据对象相关联的文档对 象模型,获取多个数据对象中的相应数据对象的大小;生成模块830,配置用于基于大小生 成布局存储库;W及显示模块840,配置用于基于布局存储库来呈现多个数据对象,W在线 显示文档。
[0102] 在本发明的一个实施方式中,多个数据对象中的数据对象是基于与数据对象相关 联的文本内容和样式来唯一地标识的。
[0103] 在本发明的一个实施方式中,获取模块820包括;构造模块,配置用于基于与多个 数据对象相关联的文本内容和样式,构造文档对象模型;W及大小获取模块,配置用于利用 浏览器呈现文档对象模型,W获取多个数据对象中的相应数据对象的大小。
[0104] 在本发明的一个实施方式中,获取模块820包括;分组模块,配置用于基于与多个 数据对象中的数据对象相关联的样式,将多个数据对象划分为多个分组;第一构造模块,配 置用于针对每个分组,基于与该分组中的至少一个数据对象相关联的文本内容和样式,构 造与该分组中的至少一个数据对象相关联的文档对象模型,由此构造与多个数据对象相关 联的文档对象模型;W及第一大小获取模块,配置用于利用浏览器呈现文档对象模型,
W获 取多个数据对象中的相应数据对象的大小。
[0105] 在本发明的一个实施方式中,大小获取模块进一步包括:调用模块,配置用于利用 浏览器的应用编程接口来获取多个数据对象中的相应数据对象的大小。
[0106] 在本发明的一个实施方式中,显示模块840包括;行显示模块,配置用于基于布局 存储库,按照用于在线显示文档的页面宽度来逐行地呈现多个数据对象,W在线显示文档。
[0107] 在本发明的一个实施方式中,行显示模块包括;计算模块,配置用于针对在线显示 的文档中的一行内的至少一个数据对象,计算页面宽度与至少一个数据对象的大小之间的 差异;W及对齐模块,配置用于按照差异W及文档的对齐模式,在行内放置至少一个数据对 象。
[010引在本发明的一个实施方式中,对齐模块包括:划分模块,配置用于划分差异W在行 内均匀地放置至少一个数据对象。
[0109] 在本发明的一个实施方式中,样式包括W下中的至少任一项;字体、字号、粗体、斜 体、上标、下标、标题、W及正文。
[0110] 在本发明的一个实施方式中,数据对象是文本对象。
[0111] 附图中的流程图和框图显示了根据本发明的多个实施方式的系统、方法和计算机 程序产品的可能实现的体系架构、功能和操作。在该点上,流程图或框图中的每个方框可W 代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个 用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所 标注的功能也可不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可W 基本并行地执行,它们有时也可W按相反的顺序执行,该依所涉及的功能而定。也要注意的 是,框图和/或流程图中的每个方框、W及框图和/或流程图中的方框的组合,可W用执行 规定的功能或操作的专用的基于硬件的系统来实现,或者可W用专用硬件与计算机指令的 组合来实现。
[0112] W上已经描述了本发明的各实施方式,上述说明是示例性的,并非穷尽性的,并且 也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对 于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选 择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的技术改进,或者使本 技术领域的其他普通技术人员能理解本文披露的各实施方式。
【主权项】
1. 一种用于在线显示文档的方法,包括: 从所述文档中提取多个数据对象; 通过构造与所述多个数据对象相关联的文档对象模型,获取所述多个数据对象中的相 应数据对象的大小; 基于所述大小生成布局存储库;以及 基于所述布局存储库来呈现所述多个数据对象,以在线显示所述文档。2. 根据权利要求1所述的方法,其中所述多个数据对象中的数据对象是基于与所述数 据对象相关联的文本内容和样式来唯一地标识的。3. 根据权利要求2所述的方法,其中所述通过构造与所述多个数据对象相关联的文档 对象模型、获取所述多个数据对象中的相应数据对象的大小包括: 基于与所述多个数据对象相关联的文本内容和样式,构造所述文档对象模型;以及 利用浏览器呈现所述文档对象模型,以获取所述多个数据对象中的相应数据对象的大 小。4. 根据权利要求2所述的方法,其中所述通过构造与所述多个数据对象相关联的文档 对象模型、获取所述多个数据对象中的相应数据对象的大小包括: 基于与所述多个数据对象中的数据对象相关联的样式,将所述多个数据对象划分为多 个分组; 针对每个分组,基于与该分组中的至少一个数据对象相关联的文本内容和样式,构造 与该分组中的至少一个数据对象相关联的文档对象模型,由此构造与所述多个数据对象相 关联的所述文档对象模型;以及 利用浏览器呈现所述文档对象模型,以获取所述多个数据对象中的相应数据对象的大 小。5. 根据权利要求3或4所述的方法,其中所述利用浏览器呈现所述文档对象模型、以获 取所述多个数据对象中的相应数据对象的大小进一步包括: 利用所述浏览器的应用编程接口来获取所述多个数据对象中的相应数据对象的大小。6. 根据权利要求1-4中的任一项所述的方法,其中所述基于所述布局存储库来呈现所 述多个数据对象、以在线显示所述文档包括: 基于所述布局存储库,按照用于在线显示所述文档的页面宽度来逐行地呈现所述多个 数据对象,以在线显示所述文档。7. 根据权利要求6所述的方法,所述基于所述布局存储库、按照用于在线显示所述文 档的页面宽度来逐行地呈现所述多个数据对象、以在线显示所述文档包括: 针对在线显示的所述文档中的一行内的至少一个数据对象,计算所述页面宽度与所述 至少一个数据对象的大小之间的差异;以及 按照所述差异以及所述文档的对齐模式,在所述行内放置所述至少一个数据对象。8. 根据权利要求7所述的方法,其中所述按照所述差异以及所述文档的对齐模式、在 所述行内放置所述至少一个数据对象包括: 划分所述差异以在所述行内均匀地放置所述至少一个数据对象。9. 根据权利要求1-4中的任一项所述的方法,其中所述样式包括以下中的至少任一 项:字体、字号、粗体、斜体、上标、下标、标题、以及正文。10. 根据权利要求1-4中任一项所述的方法,其中所述数据对象是文本对象。11. 一种用于在线显示文档的装置,包括: 提取模块,配置用于从所述文档中提取多个数据对象; 获取模块,配置用于通过构造与所述多个数据对象相关联的文档对象模型,获取所述 多个数据对象中的相应数据对象的大小; 生成模块,配置用于基于所述大小生成布局存储库;以及 显示模块,配置用于基于所述布局存储库来呈现所述多个数据对象,以在线显示所述 文档。12. 根据权利要求11所述的装置,其中所述多个数据对象中的数据对象是基于与所述 数据对象相关联的文本内容和样式来唯一地标识的。13. 根据权利要求12所述的装置,其中所述获取模块包括: 构造模块,配置用于基于与所述多个数据对象相关联的文本内容和样式,构造所述文 档对象模型;以及 大小获取模块,配置用于利用浏览器呈现所述文档对象模型,以获取所述多个数据对 象中的相应数据对象的大小。14. 根据权利要求2所述的装置,其中所述获取模块包括: 分组模块,配置用于基于与所述多个数据对象中的数据对象相关联的样式,将所述多 个数据对象划分为多个分组; 第一构造模块,配置用于针对每个分组,基于与该分组中的至少一个数据对象相关联 的文本内容和样式,构造与该分组中的至少一个数据对象相关联的文档对象模型,由此构 造与所述多个数据对象相关联的所述文档对象模型;以及 第一大小获取模块,配置用于利用浏览器呈现所述文档对象模型,以获取所述多个数 据对象中的相应数据对象的大小。15. 根据权利要求13或14所述的装置,其中所述大小获取模块进一步包括: 调用模块,配置用于利用所述浏览器的应用编程接口来获取所述多个数据对象中的相 应数据对象的大小。16. 根据权利要求11-14中的任一项所述的装置,其中所述显示模块包括: 行显示模块,配置用于基于所述布局存储库,按照用于在线显示所述文档的页面宽度 来逐行地呈现所述多个数据对象,以在线显示所述文档。17. 根据权利要求16所述的装置,其中所述行显示模块包括: 计算模块,配置用于针对在线显示的所述文档中的一行内的至少一个数据对象,计算 所述页面宽度与所述至少一个数据对象的大小之间的差异;以及 对齐模块,配置用于按照所述差异以及所述文档的对齐模式,在所述行内放置所述至 少一个数据对象。18. 根据权利要求17所述的装置,其中所述对齐模块包括: 划分模块,配置用于划分所述差异以在所述行内均匀地放置所述至少一个数据对象。19. 根据权利要求11-14中的任一项所述的装置,其中所述样式包括以下中的至少任 一项:字体、字号、粗体、斜体、上标、下标、标题、以及正文。20. 根据权利要求11-14中任一项所述的装置,其中所述数据对象是文本对象。
【专利摘要】本发明的实施方式提供了用于在线显示文档的方法和装置。在本发明的一个实施方式中,提供了一种用于在线显示文档的方法,包括:从文档中提取多个数据对象;通过构造与多个数据对象相关联的文档对象模型,获取多个数据对象中的相应数据对象的大小;基于大小生成布局存储库;以及基于布局存储库来呈现多个数据对象,以在线显示文档。在本发明的一个实施方式中,提供了一种用于在线显示文档的装置。采用本发明的方法和装置,可以提高在线显示文档的效率,进而改进用户体验。
【IPC分类】G06F9/445
【公开号】CN104881298
【申请号】CN201410068034
【发明人】薛志勇
【申请人】国际商业机器公司
【公开日】2015年9月2日
【申请日】2014年2月27日
【公告号】US20150242373
转载请注明原文地址:https://www.famiwei.com/read-8138777.html