一种文档编辑方法、装置、存储介质及设备

文档序号:86638 发布日期:2021-10-08 浏览:27次 >En<

阅读说明:本技术 一种文档编辑方法、装置、存储介质及设备 (Document editing method and device, storage medium and equipment ) 是由 张泽鼎 于 2021-06-28 设计创作,主要内容包括:本说明书提供一种文档编辑方法、装置、存储介质及设备,该方法中,对表格数据进行解析获得表格数据的原始布局设置,并按照预设布局标准对该原始布局设置进行调整,使得显示的表格符合预设布局标准,这样,能够在编辑文档的过程中,主动帮助用户完成布局效果,减少用户重复排版布局的工作量,从而提高用户文档编辑的效率。(The present specification provides a method, an apparatus, a storage medium, and a device for document editing, in which the method analyzes form data to obtain an original layout setting of the form data, and adjusts the original layout setting according to a preset layout standard, so that a displayed form meets the preset layout standard, and thus, in a process of editing a document, a user can be actively helped to complete a layout effect, workload of repeated typesetting layout of the user is reduced, and efficiency of document editing of the user is improved.)

一种文档编辑方法、装置、存储介质及设备

技术领域

本说明书涉及计算机

技术领域

,尤其涉及一种文档编辑方法、装置、存储介质及设备。

背景技术

在编辑文档的过程中,用户经常会遇到从其他文档中复制内容到当前文档中的需求,当复制的内容是表格时,由于复制源自身的表格布局特征,粘贴到当前文档中的表格的格式可能无法达到理想的布局效果,此时就需要用户进行多次调整,这无疑会增加工作量,降低用户文档编辑的效率。

发明内容

为克服相关技术中存在的问题,本说明书提供了一种文档编辑方法、装置、存储介质及设备。

根据本说明书实施例的第一方面,提供一种文档编辑方法,包括:

获取待显示在当前文档中的表格的表格数据;

解析所述表格数据,确定所述表格数据的原始布局设置;

基于预设布局标准对所述表格数据的原始布局设置进行调整后,显示所述表格,使显示的表格符合所述预设布局标准。

在某些例子中,上述预设布局标准是基于所述当前文档对应的排版要求确定的,和/或,是基于单元格的空间规划要求确定的。

在某些例子中,上述预设布局标准包括:单元格的标准边距范围;所述基于预设布局标准对所述表格数据的原始布局设置进行调整,包括:

若所述表格数据的任一单元格的边距不满足所述标准边距范围,将所述单元格的边距调整为满足所述标准边距范围。

在某些例子中,上述基于预设布局标准对所述表格数据的原始布局设置进行调整,包括:

若所述表格数据的任一单元格内具有不同字号大小的行,且各行的行距类型为倍数行距,根据字号大小调整行间距,以使各行的行间距与所述行的字号相匹配。

在某些例子中,针对被调整行间距的行,在根据字号大小调整行间距之后,还包括:

调整所述行的段前间距和/或段后间距。

在某些例子中,若所述表格数据的任一单元格内的任一行的文本具有不同大小的字号,基于所述文本中最大的字号确定所述行的行间距。

在某些例子中,上述基于预设布局标准对所述表格数据的原始布局设置进行调整,包括:

若所述表格数据的任一单元格内的最后一行存在行间距,去除所述最后一行的行间距。

在某些例子中,上述表格数据包括XML代码,所述原始布局设置是通过读取所述XML代码中记录的XML属性得到的。

在某些例子中,上述基于预设布局标准对所述表格数据的原始布局设置进行调整,包括:

基于预设布局标准修改对应的XML属性;和/或,

通过排版引擎基于所述XML属性确定渲染策略,根据预设布局标准调整所述渲染策略,利用调整后的渲染策略对所述表格进行渲染。

在某些例子中,在基于预设布局标准修改对应的XML属性之后,还包括:

将调整后的表格数据插入所述当前文档的XML代码中。

在某些例子中,上述表格数据包括:从其他文档中复制的表格数据,或将从其他文档中复制的文本插入至新建表格中形成的表格数据。

根据本说明书实施例的第二方面,提供一种文档编辑装置,包括:

获取模块,用于获取待显示在当前文档中的表格的表格数据;

解析模块,用于解析所述表格数据,确定所述表格数据的原始布局设置;

调整模块,用于基于预设布局标准对所述表格数据的原始布局设置进行调整后,显示所述表格,使显示的表格符合所述预设布局标准。

根据本说明书实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现说明书实施例中任一项方法。

根据本说明书实施例的第四方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现说明书实施例中任一项方法。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书实施例中,公开了一种文档编辑方法、装置、存储介质及设备,该方法中,对表格数据进行解析获得表格数据的原始布局设置,并按照预设布局标准对该原始布局设置进行调整,使得显示的表格符合预设布局标准,这样,能够在编辑文档的过程中,主动帮助用户完成布局效果,减少用户重复排版布局的工作量,从而提高用户文档编辑的效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种文档编辑方法的流程图;

图2是本说明书根据一示例性实施例示出的应用程序自动进行布局设置的流程的示意图;

图3是本说明书根据一示例性实施例示出的调整单元格边距前后的表格渲染效果的示意图;

图4是本说明书根据一示例性实施例示出的调整行间距前后的表格渲染效果的示意图;

图5是本说明书根据一示例性实施例示出的去除最后一行的行间距前后的表格渲染效果的示意图;

图6是本说明书根据一示例性实施例示出的文档编辑装置所在计算机设备的一种硬件结构图;

图7是本说明书根据一示例性实施例示出的一种文档编辑装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在编辑文档的过程中,用户经常会遇到从其他文档中复制内容到当前文档中的需求,当复制的内容是表格时,由于复制源自身的表格布局特征,粘贴到当前文档中的表格的格式可能无法达到理想的布局效果,此时就需要用户进行多次调整,这无疑会增加工作量,降低用户文档编辑的效率。基于此,本说明书实施例提供一种文档编辑方案,以解决上述问题。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明书根据一示例性实施例示出的一种文档编辑方法的流程图,所述方法包括:

在步骤101、获取待显示在当前文档中的表格的表格数据;

本说明书实施例的方法可以应用于用于编辑文档的应用程序,这里提到的文档可以是文本文档、表格文档、演示文档等中的任意一种。

表格是一种可视化交流模式,也是一种组织整理数据的手段。表格由一行或多行单元格组成,用于显示文字、数字和/或其他项,以便于统计查看。本步骤中提到的表格数据可以包括表格中录入的数据,以及表格的结构数据。其中,表格中录入的数据可以包括表格中的多媒体数据和/或该多媒体数据的属性数据,该多媒体数据可以包括文本、图像、音频、视频等。对应的,如该多媒体数据为文本,则该文本的属性数据可以包括字体类型、字号、数值格式等等;又如,该多媒体数据为图像,这该图像的属性数据可以包括图像的大小、滤镜类型等;又如,该多媒体数据为音频或视频,则音频或视频的属性数据可以包括音频或视频的地址。而表格的结构数据是指示表格的布局设置的数据,可以包括表格属性,如单元格边距、单元格间距等等,还可以包括单元格内的段落式样,如段落的缩进、行距等等。

为了说明清楚,本实施例中,主要以多媒体数据为文本进行详细说明,但不限制于其他类型的多媒体数据。其他的,如单元格图片中的布局形式、间隔等都可以通过本实施例中提供的方法转换为符合预设布局标准进行显示。其中,图片在单元格中的布局形式,可以是在同一单元格中,按行排列、按列排列或者多行多列排列;间隔可以是对图片之间的距离、图片于单元格边框的距离的设置。

本实施例中,表格数据在文档中可以采用预设的格式进行存储。由于目前的文档编辑软件采用的是可扩展标记语言(Extensible Markup Language,XML)这一标记语言,因此,本实施例中,以文档的数据在底层使用XML描述为例进行说明,但不局限于使用其他形式描述的文档。例如,doc或docx文件实际上就是一个包含了XML文件的压缩文件。也就是说,本实施例的表格数据可以认为是一段XML代码。XML是一种用于标记电子文件使其具有结构性的标记语言。XML文档包含XML元素,XML元素指的是从开始标签直到结束标签的部分,一个XML元素可以包含其他XML元素和/或文本。而XML属性是包含于XML元素的开始标签中的信息,用于提供关于XML元素的附加信息,这里的附加信息是不属于数据组成部分的信息,例如,<file type="gif">computer.gif</file>,这是一个XML元素,该XML元素中包含的XML属性的值指示了文件类型为gif格式的这一信息。

另外,这里的表格数据可以是从其他应用或文档中复制的表格数据,也可以是将从其他应用或文档中复制的文本插入至新建表格中形成的表格数据。

需要注意的是,不同应用之间的复制粘贴,由于不同应用采用不同的格式进行数据的存储,在进行跨应用复制粘贴时,容易出现格式不兼容,而导致复制的数据和粘贴的数据显示效果不同,甚至无法粘贴的问题。为此,本实施例中,当表格数据是从复制源复制的数据时,则将表格数据从复制源对应的格式转换为当前文档所使用的格式。如,在一些实施例中,若表格数据的复制源是某个网站,即该表格数据的本质是一段HTML代码,其格式采用的是HTML的标准,则应用程序可以先通过软件开发工具包,将该表格数据转换成对应的XML代码,即转换为符合XML的标准的格式。

在步骤102、解析所述表格数据,确定所述表格数据的原始布局设置;

本步骤中提到的是原始布局设置是指表格数据所指示的针对表格布局、单元格布局等的设置,可以对应上述表格数据中的结构数据。具体的,可以从表格数据中解析出结构数据,以确定表格数据的原始布局设置。

在一个可选的实施例中,表格数据的解析可以基于文档对象模型(DocumentObject Model,DOM)的方式实现,其中,DOM是一种基于树的应用程序编程接口(Application Programming Interface,API),在解析XML文档时,其可以将XML文档呈现为带有元素、属性和文本的树结构,即DOM树,该DOM树定义了XML文档的逻辑结构,应用程序通过对该DOM树的操作,可以实现对XML文档数据的操作,例如,通过遍历该DOM树,可以提取每个XML元素的值。相对应的,在本实施例中,应用程序可以将表格数据呈现为DOM树,再通过遍历该DOM树,得到对应该表格数据的布局设置的XML属性的值,进而能够获取到该表格数据中的原始布局设置。

当然,在其他实施例中,表格数据也可以基于其他方式,如SAX(Simple API forXML,用于处理XML事件驱动的“推”模型)、JDOM(Java-based Document Object Model,Java文档对象模型)进行解析,本说明书对此不作限制。

在步骤103、基于预设布局标准对所述表格数据的原始布局设置进行调整后,显示所述表格,使显示的表格符合所述预设布局标准。

本实施例中,受到复制源本身的表格布局特性的影响,直接利用该表格数据显示该表格的话,未必符合当前文档对于表格的布局设置的要求,相关技术中通常是在显示该表格之后,由用户手动调整表格边距、表格中的文字行距等等。但是,这种方式会影响用户编辑文档的效率,而且调整后的表格的布局效果也不一定理想。而本实施例的方案中,在通过解析表格数据得到该表格的原始布局设置之后,可以基于预设布局标准对该原始布局设置进行自动调整,从而确定该表格的显示效果符合预设布局标准。

这里的预设布局标准可以是基于当前文档对应的排版要求确定的,以当前文档是公文文档为例,预设布局标准可以根据公文的排版要求进行确定,这样,由应用程序根据待显示的表格的情况,对渲染策略进行自动调整,使得渲染出来的表格能够符合公文的排版要求。

相关技术中,一种常见的表格情况包括:默认单元格边距中,上下边距均设置为0。然而,这种表格情况会导致文字贴边,而这对于有规范要求的文档来说是不能接受的,尤其是公文。公文,即公务文书,是法定机关与组织在公务活动中,按照特定的体式、经过一定的处理程序形成和使用的书面材料,其具有非常严格的规范要求,对于公文来说,格式的不规范甚至会导致公文无法起到效用。

基于此,在一些例子中,本步骤可以包括:若表格数据的任一单元格的边距不满足标准边距范围,将所述单元格的边距调整为满足该标准边距范围。单元格边距指的是表格的单元格中内容和边框之间的距离,包括上边距、下边距、左边距和右边距。

这里的标准边距范围是预设布局标准中的一条规则,因此,对应的,其可以是根据当前文档的排版要求进行确定,也可以是根据用户自定义的标准进行确定。

例如,若对应上下边距的标准边距范围是2±0.5毫米,则针对前面提到的常见的表格情况,由于该表格的各单元格的上下边距不满足标准边距范围,应用程序可以将各单元格的上下边距调整至满足这一标准边距范围,如调整为2毫米,从而避免出现文字贴边的情况。

又例如,这里的标准边距范围也可以替换为标准边距来进行判断和调整。在其他例子中,也可以直接判断单元格上下边距是否为0,是则为该单元格上下边距增加2毫米边距,否则仍按照其原来的边距进行渲染,以避免贴边。

需要说明的是,在调整各单元格边距时,可以采用以下两种方式进行设置:一种是针对每个单元格,逐个设置单元格边距为标准边距;另一种是设置单元格属性为“单元格边距与整张表格相同”,并设置表格属性为“默认单元格边距为标准边距”。这样,应用程序自动在针对单元格布局进行渲染时,可以自动将单元格的边距渲染为满足标准边距范围,从而帮助用户完成布局效果,减少了用户手动调整布局的工作量。

当然,除了上述表格情况以外,基于排版要求的预设布局标准还可以包括规则,例如将单元格内的文字边距设置为标准文字边距等等,本说明书对此不作限制。通过这样的设置,可以对表格的渲染进行自动调整,使得显示的表格符合当前文档的排版要求,从而减少了用户频繁进行手动调整的工作量,同时也减少了手动调整的过程中造成的错误操作。

除了规范性以外,用户对表格的显示效果往往还有单元格空间利用以及美化展示等方面的需求,基于此,在其他实施例中,预设布局标准还可以是基于单元格的空间规划要求确定的,这里的空间规划要求可以是由专业技术人员制定的用于管理单元格的空间的规则,其可以包括针对行间距、段落间距等等的规则。

在实际应用中,经常会出现一个单元格内呈现多行文本,各行文本采用的字号不统一、且各行的行距类型是倍数行距的情况,这种表格情况中,假若一行使用的字号都比较小的话,该行的行间距看上去就比较大,也就是说,其往往会导致单元格内不同行呈现出来的行间距与字号大小的比例不协调,既影响美观,又占用了过多的单元格空间,这对于有规范要求的文档来说也是不能接受的。

基于此,在一些例子中,本步骤可以包括:若所述表格数据的任一单元格内具有不同字号大小的行,且各行的行距类型为倍数行距,根据字号大小调整行间距,以使各行的行间距与所述行的字号相匹配。

本实施例中,行距通常是指一行文本与下一行文本之间的距离,单元格内的各行的行距类型经常采用倍数行距,这里的倍数行距包括单倍行距、1.5倍行距、2倍行距、多倍行距,其中,单倍行距是行网格中设置的行跨度,当页边距固定时,每页的最小行跨度由正文文字高度决定,如在一个文档中,正文文字高度是12磅,每页行数设置为42行,则此时行跨度可以认为是页面高度减去上下页边距的差值除以每页行数的计算结果,其计算结果为16.6磅,即此时的单倍行距为16.6磅,当文字在行内垂直居中,则上下各有2.3磅的空。而1.5倍行距占1.5个行网格,是单倍行距的1.5倍,即为24.9磅,以此类推。而行间距通常是指一行文本的底部到下一行文本的顶部的距离,即两行之间的“空白”,例如,若当前行的文字在行内垂直居中,上下各有2.3磅的空,而下一行的文字也在行内垂直居中,其上下各有3.8磅的空,则当前行的行间距为6.1磅。

在一实施例中,在段落设置倍数行距为N倍的情况下,可以认为,段落中各行的行间距是段间距的N倍,如段落中行间距设置了10个像素,并且使用1.5倍行距,计算的行间距结果=10*1.5=15个像素。

由此可见,行间距大小与文字高度是有关联的,而在文档编排,文字高度一般通过字号进行设置,也就是说,行间距大小与字号大小相关联。而在公文这类文档中,文字通常要求在行内居上显示,因此,其行间距大小可以认为是行距与文字高度的差值。

基于此,本实施例提出根据字号大小调整行间距,以使各行的行间距与所述行的字号相匹配,这样,使得行间距与字号大小的比例保持协调性,既能够实现排版的视觉效果的美观性,也能够实现单元格空间的合理利用。

进一步的,在一可选的实施例中,在根据字号大小调整行间距时,对于文本使用的字号大于预设字号的行,可以扩大其行间距;对于文本使用的字号小于预设字号的行,可以缩小其行间距。

在另一个可选的实施例中,根据字号大小调整行间距可以基于以下规则来调整:若表格数据的任一单元格内的任一行文本使用的字号大小小于或等于预设字号大小,确定所述行在渲染时的间距为实际间距的预设比例,其中,所述实际间距根据所述表格数据中对应所述行的行距及使用的字号大小计算得到。假定某一行的行距为45个像素,该行使用的字号大小对应30个像素,则相关技术在渲染该行时,渲染的行间距为15个像素,而在本实施例中,若判断得该行文本使用的字号大小小于预设字号大小,则应用程序在渲染该行时,实际渲染的行间距为15个像素的预设比例,若预设比例为0.5,则实际渲染的行间距为7.5个像素。根据实验数据总结得到,在各行的行距倍数设置相同的情况下,若一行文本(为方便说明,记为目标行)使用的字号大小都小于等于四号字大小,而其他行文本使用的字号都大于四号字大小,则该目标行呈现出来的效果存在空隙过大的问题,存在较大的反差,而在将其计算得到的行间距减半之后,可以得到一个较为理想的渲染效果,因此,前面预设字号大小可以是四号字的大小,预设比例可以是0.5。当然,在其他实施例中,预设字号大小以及预设比例也可以根据具体场景的需求来进行设置。另外,在缩短原先计算的行间距之后,还可以对当前行增加段前间距和/或段后间距,以进一步调整行间距效果。

还有,在一些实施例中,若表格数据的任一单元格内的任一行的文本具有不同大小的字号,基于所述文本中最大的字号确定所述行的行间距。例如,某一行的文本中所采用的字号包括四号字、五号字、六号字,则根据四号字确定该行的行间距。另外,应用程序在根据字号大小调整任一行的行间距之后,可以调整该行的段前间距和/或段后间距。例如,单元格中有四行文本,第一行和第四行的文本所采用的字号均为三号字,第二行和第三行的文本所采用的字号均为四号字,按照前面提到的根据字号大小调整行间距的方案进行实际渲染时,第一行和第四行的行间距仍保持原来的行间距,而第二行和第三行的行间距减半,这样会出现第一行和第二行之间的空隙,与第三行和第四行之间的空隙相差较大的情况,这种前面疏松、后面紧凑的情况容易形成不整齐的视觉效果,因此,在调整第三行的行间距之后,可以对第三行增加段后间距,以形成更加整齐可视的效果。

而且,进一步的,由于应用程序在渲染当前行时,当前行的行间距是放在当前行之后的,而下一行就在当前行的行间距之后开始布局渲染,因此,针对单元格最后一行存在行间距的表格情况,其容易导致单元格内最后一行文本与末边之间的间隙过大,影响表格的美观感和规范性。基于此,在一些例子中,本步骤可以包括:若表格数据的任一单元格内的最后一行存在行间距,去除所述最后一行的行间距。也就是说,应用程序在渲染单元格的最后一行时,可以去掉该行的行间距,即针对该行实际渲染的行间距为0个像素。

通过这样的设置,可以实现在单元格有限的展示空间中尽可能地展示较多的内容,即对单元格中可能出现的冗余空间进行合理压缩。实际应用中,文本文档是一种流式文本的排版方式,应用程序会根据屏幕大小、文档的页面大小、文档中所采用的的字体等进行排版,在未进行上述方案的调整时,经常会出现用户由于在有限的屏幕中无法观看到足够多的内容而需要频繁切换界面的情况,这样会导致应用程序需要预留足够多的硬件资源来处理界面切换,否则容易出现卡顿的问题。而本实施例的方案根据单元格的空间规划要求调整表格的渲染策略,实现了对单元格有限的展示空间的合理利用,使得整个应用程序的运行更加顺畅。

当然,这里的预设布局标准也可以根据用户自定义的标准来确定,由应用程序自动调整表格的渲染策略,以达到用户理想的布局效果。另外,这里的预设布局标准可以是直接写入至应用程序的代码中,也可以存放至应用程序所在设备的存储器的某个指定位置,或者某个网站服务器中,由应用程序在需要时通过对应的路径进行获取,本实施例对此不作限制。

前面已经提到,本实施例的表格数据可以是一段记录有对应布局设置的XML属性的代码,排版引擎针对表格的渲染过程,一般是根据表格数据中的XML属性确定出渲染策略,进而根据渲染策略对表格数据中的文档内容进行渲染,进而将渲染得到的文档内容显示在应用程序中,使得显示的文档内容具有对应的属性。基于此,在某些例子中,本步骤所提到的调整,可以是指基于预设布局标准修改对应的XML属性,例如,若预设布局标准包括:单元格的标准边距为2毫米,可以对表格数据中对应单元格边距的XML属性的值进行修改,以修改为标准边距2毫米,这样,排版引擎在渲染表格时,可以根据修改后的XML属性进行渲染。针对此种情况,可以将修改后的XML属性存储在文档中,之后,在打开文档时,直接按照使用修改后的XML属性对文档进行渲染,就可以得到符合预设布局标准的显示效果。

需要注意的是,部分调整内容并不能通过改变某个XML属性的值而得到,如前面提到的根据字号大小调整行间距的内容。具体的,由于表格数据采用流式排版的方式进行排版,针对不同的设备,即使是同一表格数据,其对应的排版所得到的行数以及行中的内容都是存在差异的,因此,表格数据中并没有直接对应于行间距的XML属性,排版引擎是通过行跨度、字号、行距倍数等这些相关的XML属性计算渲染的行间距,再基于计算结果进行渲染。

针对此情况,本说明书的一个可选实施例提供以下调整方式:在排版引擎根据所述XML属性渲染所述表格的过程中,基于所述XML属性确定渲染策略,根据预设布局标准调整所述渲染策略,以使排版引擎根据调整后的渲染策略对所述表格进行渲染。沿用前面的例子,排版引擎可以先基于表格数据中分别对应行跨度、字号、行距倍数等的XML属性得到计算的行间距,再根据预设布局标准进行调整,若该行文本使用的字号大小小于预设字号大小,排版引擎在渲染过程中,可以将计算的行间距进行减半,得到调整后的行间距,再基于调整后的行间距进行渲染。

在根据预设布局标准调整好渲染策略后,应用程序根据该渲染策略显示该表格。例如,应用程序在渲染表格布局时,可以根据该渲染策略中针对表格的单元格边距等的设置进行渲染,在渲染单元格布局时,可以根据该渲染策略中针对行间距等的设置进行渲染,这样,显示出来的表格符合布局标准。

本说明书实施例的方案,自动对表格数据的原始布局设置进行解析,以及按照预设布局标准进行修改,使得显示的表格符合标准,从而能够帮助用户完成布局效果,提高用户文档编辑的效率。

另外,为了在其他文档编辑软件中打开当前文档时能够实现相同的布局效果,在某些例子中,应用程序还可以基于该渲染策略修改表格数据中对应的XML属性的值,并将修改后的表格数据插入至当前文档的XML代码中。沿用前面提到的调整边距效果的例子,应用程序在显示该表格的同时,可以将该表格的表格数据中对应单元格上下边距的XML属性的值进行修改,以修改成标准边距2毫米,并将修改后的表格数据插入至当前文档的XML代码中,这样,应用其他文档编辑软件来打开这一文档时,该表格能够仍保留单元格上下边距为标准边距的显示效果,从而有助于提升用户的使用体验。

为了对本说明书的文档编辑方案做更为详细的说明,接下来介绍一具体实施例:

本实施例中,用户在编写公文的过程中,需要从普通文档中复制一个表格到当前的公文文档中,由于该普通文档的表格布局采用的是常规的设置,不符合公文的排版要求,因此粘贴到当前的公文文档中可能出现不合适的布局效果,如部分单元格的文本贴边、部分行的行间距太大等。

本实施例的文档编辑方案应用于一应用程序中,该用户利用该应用程序来编写公文时,针对复制的表格,该应用程序自动进行布局设置的方案可以基于图2的示意图中示出的以下流程进行体现:

S201、获取该表格的表格数据;

S202、解析该表格数据,确定该表格数据的原始布局设置;

S203、判断该单元格上下边距是否为0,是则执行S204,否则执行S205;

S204、将该单元格上下边距设置为标准边距2毫米,基于这一标准边距的值,渲染该单元格上下边距;如图3所示,图3是本实施例示出的调整单元格边距前后的表格渲染效果的示意图,其中左图指示单元格上下边距为0的表格渲染效果,右图指示将单元格上下边距设置为标准边距后的表格渲染效果,由图可以看出,本实施例可以避免首行和末行贴边的情况;

S205、基于原始布局设置中对应的值,渲染该单元格上下边距;

S206、判断该单元格内的任一行文本使用的字号大小是否都小于等于四号字大小,是则执行S207,否则执行S208;

S207、确定该行在渲染时的目标间距为实际间距的一半,基于目标间距渲染该行的间距,该实际间距是根据表格数据中对应该行的行距和文本使用的字号大小计算得到的;

在本实施例中,如,各行的行距类型是单倍行距,单倍行距对应的磅值为10.5磅,即一个行网格对应的磅值为10.5磅;某一行文本使用的字号大小均为四号字,对应磅值为14磅;由于四号字的文字高度大于单倍行距,而当前文档为了排版的整齐性,一般设置有文字对齐网格的属性,因此,该行占两个行网格,则该行的行距为单倍行距对应的磅值的2倍,为21磅;进一步,由于当前文档规定文字在行内居上显示,因此,计算得到该行的行间距为该行的行距减去文字高度的值,即为7磅,因此,实际渲染该行的行间距为计算得到的行间距的一半,即为3.5磅;如图4所示,图4是本实施例示出的调整行间距前后的表格渲染效果的示意图,其中左图指示相关技术中针对单元格内容包含四号字文本行的表格渲染结果,右上图指示调整四号字文本行的行间距后的表格渲染效果,右下图指示在调整四号字文本行的行间距后进一步稍微增加段后间距的表格渲染效果,由图可以看出,本实施例可以避免视觉效果上行间距显得过大的情况;

S208、基于原始布局设置中对应的值,渲染该行的行间距;

S209、判断该单元格内的最后一行是否存在行间距,是则执行S210,否则执行S211;

S210、去除最后一行的行间距,即渲染该最后一行的行间距为0个像素;如5所示,图5是本实施例示出的去除最后一行的行间距前后的表格渲染效果的示意图,其中左图指示最后一行存在行间距的表格渲染效果,右图指示去除最后一行的行间距后的表格渲染效果,由图可以看出,本实施例可以减少单元格内末行和下边之间空白区域过宽的情况;

S211、基于S206至S210的流程渲染完所有单元格后,显示该表格。

本实施例中,用户在复制粘贴或者编辑表格内容时,不需要考虑复制源的表格布局特性,而是由应用程序自动帮助用户完成布局效果,编辑好的公文文档能够很好地符合公文的排版要求,从而提高了用户对文档编辑的效率。

并且,本实施例的方案在满足排版布局的规范性的同时,还根据字号大小调整了单元格中段落的行间距,使其呈现出整齐的视觉效果,满足了美观的要求;并且能够合理利用单元格的有限展示空间,使得应用程序不需要预留较多的硬件资源来处理界面切换,从而使得应用程序的运行更加顺畅。

与前述方法的实施例相对应,本说明书还提供了文档编辑装置及其所应用的终端的实施例。

本说明书文档编辑装置的实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图6所示,为本说明书实施例文档编辑装置所在计算机设备的一种硬件结构图,除了图6所示的处理器610、内存630、网络接口620、以及非易失性存储器640之外,实施例中装置631所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。

相应地,本说明书实施例还提供一种计算机存储介质,所述存储介质中存储有程序,所述程序被处理器执行时实现上述任一实施例中的方法。

本说明书实施例可采用在一个或多个其中包含有程序代码的存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机可用存储介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括但不限于:相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

如图7所示,图7是本说明书根据一示例性实施例示出的一种文档编辑装置的框图,所述装置包括:

获取模块71,用于获取待显示在当前文档中的表格的表格数据;

解析模块72,用于解析所述表格数据,确定所述表格数据的原始布局设置;

调整模块73,用于基于预设布局标准对所述表格数据的原始布局设置进行调整后,显示所述表格,使显示的表格符合所述预设布局标准。

在某些例子中,上述预设布局标准是基于所述当前文档对应的排版要求确定的,和/或,是基于单元格的空间规划要求确定的。

在某些例子中,上述预设布局标准包括:单元格的标准边距范围;上述调整模块包括第一调整子模块,所述第一调整子模块用于:若所述表格数据的任一单元格的边距不满足所述标准边距范围,将所述单元格的边距调整为满足所述标准边距范围。

在某些例子中,上述调整模块包括第二调整子模块,所述第二调整子模块用于:若所述表格数据的任一单元格内具有不同字号大小的行,且各行的行距类型为倍数行距,根据字号大小调整行间距,以使各行的行间距与所述行的字号相匹配。

在某些例子中,上述调整模块包括第三调整子模块,所述第三调整子模块用于:针对被调整行间距的行,在第二调整子模块根据字号大小调整行间距之后,调整所述行的段前间距和/或段后间距。

在某些例子中,上述第二调整子模块还用于:若所述表格数据的任一单元格内的任一行的文本具有不同大小的字号,基于所述文本中最大的字号确定所述行的行间距。

在某些例子中,上述调整模块包括第四调整子模块,所述第四调整子模块用于:若所述表格数据的任一单元格内的最后一行存在行间距,去除所述最后一行的行间距。

在某些例子中,上述表格数据包括XML代码,所述原始布局设置是通过读取所述XML代码中记录的XML属性得到的。

在某些例子中,上述调整模块具体用于:基于预设布局标准修改对应的XML属性;和/或,通过排版引擎基于所述XML属性确定渲染策略,根据预设布局标准调整所述渲染策略,利用调整后的渲染策略对所述表格进行渲染。

在某些例子中,上述调整模块具体还用于:在基于预设布局标准修改对应的XML属性之后,将调整后的表格数据插入所述当前文档的XML代码中。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:问卷编辑器组件

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!