排版方法及装置
技术领域
本发明涉及通信技术领域,尤其涉及一种排版方法及装置。
背景技术
随着信息的高度数字化,科学家、数学工作者、工程师、教师和学生等通常需要编辑包括大量公式的科技文档,很多时候需要从其他各类型的文档或者网页复制包含公式的内容。
现有的排版技术中,公式本身作为一个整体直接插入到WORD文档等应用程序中,通常公式内部的排版规则与WORD文档中的排版规则有很大的不同。对于多数排版装置来说,待排版的文件很多时候是由其他类型文档转换而来,其来源可能有多种方式,比如WORD文档,网页等,由于使用文本字符并不能清晰和准确的描述出公式的内容,同时也不符合公式表示习惯,在待排版的文件中,原有的公式通常会被错误的转换成了纯文本或者纯文本与部分公式的混排,使得公式的字符间距错误,导致公式格式错乱,因此,亟需一种将文本与公式的混排内容转换为公式的排版方法。
发明内容
本发明提供一种排版方法及装置,用以解决现有技术中在待排版的文件中,原有的公式通常会被错误的转换成了文本或者文本与部分公式的混排,使得公式的字符间距错误,导致公式格式错乱的问题。
本发明的一个方面是提供一种排版方法,包括:
获取待转换文本的至少一个转换单元,以及各所述转换单元的属性信息;
创建空白的公式,将所述空白的公式作为目标公式;
根据各转换单元的属性信息,将所述至少一个转换单元依次添加到所述目标公式中;
用所述目标公式替换所述待转换文本。
本发明的另一个方面是提供一种排版装置,包括:
获取模块,用于获取待转换文本的至少一个转换单元,以及各所述转换单元的属性信息;
创建模块,用于创建空白的公式,将所述空白的公式作为目标公式;
转换模块,用于根据各转换单元的属性信息,将所述至少一个转换单元依次添加到所述目标公式中;
替换模块,用于用所述目标公式替换所述待转换文本。
本发明提供的排版方法及装置,通过将待转换文本拆分成至少一个转换单元,根据各转换单元的属性信息,将所述至少一个转换单元依次添加到创建的空白公式中,并用已添加了待转换文本中所有的转换单元的目标公式替换原有的待转换文本,由于将待转换单元插入到目标公式的过程中,排版装置或根据目标公式对应的内部排版规则,重新对添加到目标公式中的待转换单元进行排版处理,从而可以使得各排版单元之间的间距符合目标公式对应的排版规则,得到一个格式规整的公式,从而可以改善整体排版质量。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
图1为本发明实施例一提供的排版方法流程图;
图2为本发明实施例二提供的排版方法流程图;
图3为本发明实施例三提供的排版装置的结构示意图;
图4为本发明实施例四提供的排版装置的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在以下各实施例的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量;“多个”的含义是两个以上,除非另有明确具体的限定。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。
实施例一
图1为本发明实施例一提供的排版方法流程图。本发明实施例针对现有技术中在待排版的文件中,原有的公式通常会被错误的转换成了文本或者文本与部分公式的混排,使得公式的字符间距错误,导致公式格式错乱的问题,提供了排版方法。如图1,该方法具体步骤如下:
步骤S101、获取待转换文本的至少一个转换单元,以及各转换单元的属性信息。
其中,待转换文本可以是可编辑的任何类型的文件中的内容。例如,可以是排版装置中待排版文件或者是WORD文档中的正文片段等。另外,本实施例中,待转换文本可以包括纯文本字符或者公式,例如可以是纯文本、或者公式、或者纯文本和公式的混排。本实施例中,一个转换单元可以是一个字符、或者是一个公式,转换单元是一个最小不可拆分的单元。
本实施例中,待转换文本可以由用户指定,例如,用户可以在选中待转换的内容信息之后,通过点击用于发出转换指令的操作区域向排版装置发出转换指令,转换指令用于将待转换文本转换为公式。排版装置在接收到转换指令之后,获取被选中的待转换文本所包括的转换单元,以及各转换单元的属性信息。
其中,属性信息至少包括:类型信息和字体属性。类型信息包括:文本字符类型和公式类型。
进一步地,字体属性至少包括:字体名称、字体大小、字体加粗、字体风格、字体变形等等。例如,字体名称可以是宋体、楷体、Cambria等等。字体风格属性可以以以下风格中的一个来定义显示的字体:normal(普通)、italic(斜体)或oblique(倾斜)。字体变形属性决定了字体的显示是normal(普通)还是small-caps(小型大写字母),当文字中所有字母都是大写的时候,小型大写字母(值)会显示比小写字母稍大的大写字符,某些版本的排版装置将会支持附加的变形,如收缩、扩张、小写数码或其它自定义的变形。
步骤S102、创建空白的公式,将空白的公式作为目标公式。
本实施例中,创建空白的公式,将空白的公式作为目标公式,具体可以采用如下方式实现:
新建一个新的公式,清除新创建的公式的所有内容,得到空白的公式,并将空白的公式作为目标公式。
步骤S103、根据各转换单元的属性信息,将至少一个转换单元依次添加到目标公式中。
本实施例中,根据待转换文本中各转换单元原始的排列顺序,依次将每个转换单元添加到目标公式中,从而可以将原有的待转换文本中所有的纯文本字符和公式都添加到目标公式中,由于将待转换单元插入到目标公式的过程中,排版装置会根据目标公式对应的内部排版规则,重新对添加到目标公式中的待转换单元进行排版处理,从而可以使得各排版单元之间的间距符合目标公式对应的排版规则,得到一个格式规整的公式。
步骤S104、用目标公式替换待转换文本。
在得到已添加了待转换文本中所有的转换单元的目标公式之后,将待转换文本删除,将目标公式插入到待转换文本的起始位置。
本发明实施例通过将待转换文本拆分成至少一个转换单元,根据各转换单元的属性信息,将至少一个转换单元依次添加到创建的空白公式中,并用已添加了待转换文本中所有的转换单元的目标公式替换原有的待转换文本,由于将待转换单元插入到目标公式的过程中,排版装置或根据目标公式对应的内部排版规则,重新对添加到目标公式中的待转换单元进行排版处理,从而可以使得各排版单元之间的间距符合目标公式对应的排版规则,得到一个格式规整的公式,从而可以改善整体排版质量。
实施例二
图2为本发明实施例二提供的排版方法流程图。在上述实施例一的基础上,本实施例中根据各转换单元的属性信息,将至少一个转换单元依次添加到目标公式中,包括:根据各转换单元在待转换文本中的顺序,依次将每个转换单元作为目标单元,根据目标单元的类型信息,将目标单元添加到目标公式中,并根据目标单元的属性信息,设置目标公式中的目标单元的字体属性。至少一个转换单元,以及各转换单元的属性信息存储在数组中;数组中的元素用于存储一个转换单元及转换单元的属性信息。如图2所示,该方法具体步骤如下:
步骤S201、获取待转换文本的至少一个转换单元,以及各转换单元的属性信息。
其中,待转换文本可以是可编辑的任何类型的文件中的内容。例如,可以是排版装置中待排版文件或者是WORD文档中的正文片段等。另外,本实施例中,待转换文本可以包括纯文本字符或者公式,例如可以是纯文本、或者公式、或者纯文本和公式的混排。本实施例中,一个转换单元可以是一个字符、或者是一个公式,转换单元是一个最小不可拆分的单元。
本实施例中,待转换文本可以由用户指定,例如,用户可以在选中待转换的内容信息之后,通过点击用于发出转换指令的操作区域向排版装置发出转换指令,转换指令用于将待转换文本转换为公式。排版装置在接收到转换指令之后,获取被选中的待转换文本所包括的转换单元,以及各转换单元的属性信息。
其中,属性信息至少包括:类型信息和字体属性。类型信息包括:文本字符类型和公式类型。
字体属性至少包括:字体名称、字体大小、字体加粗、字体风格、字体变形等等。例如,字体名称可以是宋体、楷体、Cambria等等。字体风格属性可以采用以下风格中的一个来定义显示的字体:normal(普通)、italic(斜体)、或者oblique(倾斜)。字体变形属性决定了字体的显示是normal(普通)还是small-caps(小型大写字母),当文字中所有字母都是大写的时候,小型大写字母(值)会显示比小写字母稍大的大写字符,某些版本的排版装置将会支持附加的变形,如收缩、扩张、小写数码或其它自定义的变形。
进一步地,获取待转换文本的至少一个转换单元,以及各转换单元的属性信息之后,还包括:将至少一个转换单元以及各转换单元的属性信息存储到数组中。
数组中的一个元素用于存储一个转换单元及转换单元的属性信息。
优选的,各转换单元对应于数组中数组元素的位置按照各转换单元在待转换文本中的由先到后的顺序依次排列,以便于依次从数组中获取转换单元并将该转换单元,从而便于实现将至少一个转换单元依次添加到目标公式中。
另外,至少一个转换单元以及各转换单元的属性信息还可以以其他数据结构进行存储,例如,队列等,本实施例对此不做具体限定。
具体地,数组中的每个元素可以采用如下数据结构实现:
其中,用名称为“Content2Math”的结构体存储一个转换单元及其属性信息。
m_type变量用于存储转换单元的类型信息,例如,若m_type的值为第一预设值,表示该转换单元为纯文本字符类型,若m_type的值为第二预设值,表示该转换单元为公式类型。其中,第一预设值和第二预设值为不同值,例如第一预设值为0,第二预设值为1;或者第一预设置为字符串“type1”,第二预设置为字符串“type2”等,本实施例对于m_type变量的值如何设定不做具体限定。
m_vCode变量用于存储转换单元的文字编码或者数学公式占位码等内容信息。若m_type变量表示该转换单元是纯文本字符类型,则m_vCode变量存储的值为该转换单元的文字编码;若m_type变量表示该转换单元是公式类型,则m_vCode变量存储的值为该转换单元的占位码。
m_Latin_FontName变量用于存储该转换单元中的英文数据的字体名称。
m_SC_FontName变量用于存储该转换单元中的中文数据的字体名称。
m_fontSize变量用于存储该转换单元的字体大小,例如字号等信息。
m_bItalic变量用于存储该转换单元的字体风格,例如normal(普通)、italic(斜体)、或者oblique(倾斜)等信息。
m_bBold变量用于存储该转换单元的字体加粗,例如粗体等。
步骤S202、创建空白的公式,将空白的公式作为目标公式。
本实施例中,创建空白的公式,将空白的公式作为目标公式,具体可以采用如下方式实现:
新建一个新的公式,清除新创建的公式的所有内容,得到空白的公式,并将空白的公式作为目标公式。
步骤S203、根据各转换单元在待转换文本中的顺序,依次获取一个转换单元作为目标单元。
本实施例中,通过循环执行步骤S203-S206,可以将至少一个转换单元依次添加到目标公式中。每次执行该步骤S203时,获取下一个还未添加到目标公式中的转换单元作为目标单元,为步骤S204-S205将该目标单元添加到目标公式做准备。
步骤S204、根据目标单元的类型信息,将目标单元添加到目标公式中。
在获取到目标单元之后,本实施例中,根据目标单元的类型信息,将目标单元添加到目标公式中,具体可以采用如下方式实现:
(1)若目标单元的类型信息为纯文本字符类型,则将目标单元输入到目标公式中,并对输入目标公式中目标单元进预设排版处理。
也就是,若当前的目标单元的类型信息为纯文本字符类型,则按照向目标公式中敲入文本的流程,将该目标单元添加到目标公式中,由于将待转换单元敲入到目标公式的过程中,排版装置会根据目标公式对应的内部排版规则,重新对添加到目标公式中的待转换单元进行预设排版处理,从而可以使得各排版单元之间的间距符合目标公式对应的排版规则。
其中,预设排版处理可以是任意一种排版工具或者公式编辑器在公式中敲入内容时所做的排版处理,或者可以由技术人员根据实际需要进行设定,本实施例对此不做具体限定。
(2)若目标单元的类型信息为公式类型,则将目标单元附加到目标公式的末尾。
步骤S205、根据目标单元的属性信息,设置目标公式中的目标单元的字体属性。
本实施例中,还可以向用户提供设定是否保留待转换文本原有的字体属性的界面,由用户确定是否保留待转换文本原有的字体属性。
如果确定要保留待转换文本原有的字体属性,则通过该步骤S205,在将目标单元添加到目标公式中之后,根据目标单元的属性信息中的字体属性,设置目标公式中的目标单元的字体属性,使得目标公式中目标单元的字体属性与其在待转换文本中的字体属性一致。
如果确定不需要保留待转换文本原有的字体属性,则不执行该步骤S205,在步骤S204之后直接执行步骤S206。
步骤S206、目标单元是否是待转换文本的最后一个转换单元。
若目标单元是待转换文本的最后一个转换单元,则确定已经将待转换文本的所有转换单元添加到目标公式中,执行步骤S207用目标公式替换待转换文本。
若目标单元不是待转换文本的最后一个转换单元,则确定还未待转换文本的所有转换单元添加到目标公式中,执行步骤S203,继续获取下一个目标单元。
步骤S207、用目标公式替换待转换文本。
在得到已添加了待转换文本中所有的转换单元的目标公式之后,将待转换文本删除,将目标公式插入到待转换文本的起始位置。
本发明实施例通过根据各转换单元在待转换文本中的顺序,依次将每个转换单元作为目标单元,根据目标单元的类型信息,将目标单元添加到目标公式中,并根据目标单元的属性信息,设置目标公式中的目标单元的字体属性,可以使得目标公式中各转换单元保留原有的字体属性。
实施例三
图3为本发明实施例三提供的排版装置的结构示意图。本发明实施例提供的排版装置可以执行排版方法实施例提供的处理流程。如图3所示,该排版装置30包括:获取模块301、创建模块302、转换模块303和替换模块304。
具体地,获取模块301用于获取待转换文本的至少一个转换单元,以及各转换单元的属性信息。
其中,属性信息至少包括:类型信息和字体属性;类型信息包括:纯文本字符类型和公式类型。
创建模块302用于创建空白的公式,将空白的公式作为目标公式。
转换模块303用于根据各转换单元的属性信息,将至少一个转换单元依次添加到目标公式中。
替换模块304用于用目标公式替换待转换文本。
本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过将待转换文本拆分成至少一个转换单元,根据各转换单元的属性信息,将至少一个转换单元依次添加到创建的空白公式中,并用已添加了待转换文本中所有的转换单元的目标公式替换原有的待转换文本,由于将待转换单元插入到目标公式的过程中,排版装置或根据目标公式对应的内部排版规则,重新对添加到目标公式中的待转换单元进行排版处理,从而可以使得各排版单元之间的间距符合目标公式对应的排版规则,得到一个格式规整的公式,从而可以改善整体排版质量。
实施例四
图4为本发明实施例四提供的排版装置的结构示意图。在上述实施例三的基础上,本实施例中,如图4所示,转换模块303还包括:转换子模块3031和设置子模块3032。
具体地,转换子模块3031用于根据各转换单元在待转换文本中的顺序,依次将每个转换单元作为目标单元,根据目标单元的类型信息,将目标单元添加到目标公式中。
设置子模块3032用于根据目标单元的属性信息,设置目标公式中的目标单元的字体属性。
进一步地,转换子模块3031具体用于:若目标单元的类型信息为纯文本字符类型,则将目标单元输入到目标公式中,并对输入目标公式中目标单元进预设排版处理;若目标单元的类型信息为公式类型,则将目标单元附加到目标公式的末尾。
可选地,排版装置30还可以包括:存储模块。
存储模块用于将至少一个转换单元以及各转换单元的属性信息存储到数组中。
其中,数组中的元素用于存储一个转换单元及转换单元的属性信息。
本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。
本发明实施例通过根据各转换单元在待转换文本中的顺序,依次将每个转换单元作为目标单元,根据目标单元的类型信息,将目标单元添加到目标公式中,并根据目标单元的属性信息,设置目标公式中的目标单元的字体属性,可以使得目标公式中各转换单元保留原有的字体属性。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。