CN104516868B - 一种版面空格的流式还原方法与*** - Google Patents

一种版面空格的流式还原方法与*** Download PDF

Info

Publication number
CN104516868B
CN104516868B CN201310462663.0A CN201310462663A CN104516868B CN 104516868 B CN104516868 B CN 104516868B CN 201310462663 A CN201310462663 A CN 201310462663A CN 104516868 B CN104516868 B CN 104516868B
Authority
CN
China
Prior art keywords
character
space
streaming
pitch
whole page
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.)
Active
Application number
CN201310462663.0A
Other languages
English (en)
Other versions
CN104516868A (zh
Inventor
王长胜
董宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Fangzheng Apapi Technology Co Ltd
New Founder Holdings Development Co ltd
Original Assignee
Peking University Founder Group Co Ltd
Beijing Founder Apabi Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University Founder Group Co Ltd, Beijing Founder Apabi Technology Co Ltd filed Critical Peking University Founder Group Co Ltd
Priority to CN201310462663.0A priority Critical patent/CN104516868B/zh
Publication of CN104516868A publication Critical patent/CN104516868A/zh
Application granted granted Critical
Publication of CN104516868B publication Critical patent/CN104516868B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Document Processing Apparatus (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

本发明所述的版面空格的流式还原方法,获取版面中依次相邻的三个字符;计算相邻两个的字符间距并计算出字符间距差值;如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。这样,通过计算前后两个字符之间的空白位置的间距,获取该间距是由于排版导致的均匀间距还是由于存在空格字符导致的,如果前后两处的字符间距的差值在阈值内,则说明其间隔均匀,不需要***空格,如果间距的差值较大,则通过比较判断是否***,这样,通过空格还原,将版面中需要的空格在流式转换时,增加所需的空格,这样可以依据实际版面的呈现效果进行流式空格的还原处理,使得版面的展示更加准确。

Description

一种版面空格的流式还原方法与***
技术领域
本发明涉及电子文档数据处理领域,具体地说是一种将版式文档中逻辑空格还原为流式文档中对应空格的处理方法及***。
背景技术
版式文档是一种独立于软件、硬件、操作***、呈现或打印设备的文档,例如pdf,ceb,cebx等格式的版式文档。一个版式文档可以包含多个页面,每个页面由与设备和分辨率无关的若干的图元组成。版式技术是指将文字、图形、图像、音视频等多种数字内容对象按照一定的排版规则排版后进行版面固化呈现的技术。版式文档的特点是版面固定、不跑版,即所见即所得(What you see is what you get,简称WYSIWYG),使电子文档在使用过程中,呈现效果不因软硬件环境、操作者的变化而变化,在版式、版面、字体、字号等方面与纸质文件保持完全一致。版式文档格式的特点使它成为电子文档发布、数字化信息传播和存档的理想文档格式。越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件开始使用版式文档,在国外,Adobe公司的PDF版式文档格式目前已成为数字化信息事实上的一个工业标准。
流式排版显示是指对文档包含的文字、数字、表格和图形图像进行特定的排版方式处理,保存后的内容是原始的编辑元素,可以在不同的缩放比率间自适应大小的显示。目前的电子阅读软件既支持文档的版式排版显示,又支持流式排版显示。流式文档如Office文档,它描述的不是排版后生成的具有版面呈现所需要的所有数据的文档(即版式文档),其相关(流式)数据通常不具有固定位置大小等版面信息,每次加载文档时需要类似流水线式的对这些数据从头到尾进行重新排版计算得到相关位置信息,然后才能呈现出来。
在文档的结构化信息中,存储有关于文档(流式、版式等类型)的逻辑结构的信息,包括文章、节、段落等逻辑结构,以及显示样式信息。结构化信息可用于实现版面内容的重排(Reflow),以适应不同屏幕尺寸的设备特别是移动设备的需求。常见粗粒度的逻辑结构单元有:区域、排版框、段落、表格等。细粒度的基本逻辑结构单元有:文本句、图形、图像、公式、图表、多媒体对象、复合对象等。这些富有语义的逻辑数字内容对象在流式文档、版式文档等中的数据逻辑结构描述通常都是有差异的。
文本句(Run or Span),是指段落内最小的逻辑文字单元,连续的文本以是否具有相同文字属性为依据来划分为若干个句。段落内被其它单元对象如图形图像等锚点对象分割开始的即便有相同文字属性也会划分有不同的句。版式文档中还允许通过嵌入字体以及字形变换方式来表达显示文本,而不仅仅通过正常字体编码对应的文本串来表达显示文本。版流式文档在表达文本句方面存在若干差异,例如版式文档中文本句首字符会给出版面上的x,y坐标,流式文档文本句则无,此外流式文档文本句不会对其进行精确定位的描述,而版式文档文本句则可能。显示文本,即文字在输出设备上的显示结果通常由字体信息、文本句以及相关绘制式样信息等决定。
字宽(Advance Width)是指版式文本的字宽,还可能通过嵌入字体的字宽表widthTable来直接描述给出,默认通过对应字体中某字符对应的字型Glyph可以获取字宽值。
空格(space)在各种文档中普遍存在,流式文档中空格效果可以通过多种方式产生:空格键,Tab制表符,字间距charspace、kerning(pair),特殊版式精确定位描述等;版式文档中的空格效果更多地通过各字符等图元固定的x坐标位置之间的差值计算出来,或通过额外的字间距charspace来拉伸或紧缩字符之间的距离,当然也可以用真实的空格字符来表达。空格键产生的字符中包含了空格字符,因此在流式重排时容易识别,但是非真实空格字符如由Tab制表符,字间距等特殊形式形成的空白位置,由于不存在空格字符信息,因此很难识别成空格。
版式文档的结构化流式信息,尤其是其中英文文本段落在PC或各种移动设备上呈现时常常出现有碍阅读的几种现象:英文单词之间没有空格、英文单词内部有多余的空格、几乎所有英文字母之间都存在一定的间距。详见图1中原始样图与图2、图3中读取后存在空格显示错误的样图,以及图3的原始样图在图4中存在空格错误的显示样图。
上述现象产生的原因是:(1)版式文档中相关英文文本串中不存在空格字符,而是采用字符间距(charspace)或固定版式中字符的绝对坐标位置来表达版式上的逻辑空格;(2)并且版式文档的结构化流式信息中也不存在空格等价的表达方式例如用Maker标记符{Type=space,nCount=n空格数};(3)最终只能依靠版式文档的结构化流式信息在具体呈现(Render)时依据一定的排版规则绘制出来,但目前呈现出来的结果如图2、图3以及图5所示,还是存在相关缺陷的:这是因为现有的绘制排版算法在样式表渲染时利用了charspace信息;而利用版式字体信息渲染时忽略了charspace,并且等分字间距。由于空格的产生原因很多,因此很难采用某一种方法将上述众多原因产生的空格进行还原。
发明内容
为此,本发明所要解决的技术问题在于将版式文档转化为流式文档后,空格出现的位置不恰当、出现多余的空格或该出现的位置未出现,从而提出一种有效还原版面中空格、提高了空格出现准确率的版面空格的还原方法和***。
为解决上述技术问题,本发明的提供一种版面空格的还原方法和***。
一种版面空格的流式还原方法,包括以下步骤:
获取版面中依次相邻的第一字符、第二字符、第三字符;
计算第一字符与第二字符之间的第一字符间距,并计算第二字符与第三字符之间的第二字符间距,再计算第一字符间距与第二字符间距的字符间距差值;
如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。
所述版面空格的流式还原方法,所述计算第一字符与第二字符之间的第二字符间距的过程,包括:
获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。
所述版面空格的流式还原方法,所述计算第二字符与第三字符之间的第二字符间距的过程,包括:
获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第一字符间距d2=x3-x2-w2。
所述版面空格的流式还原方法,所述计算第一字符间距与第二字符间距的字符间距差值的过程为:字符间距差值D=d1-d2。
所述版面空格的流式还原方法,所述预设差值阈值为3磅-5磅。
所述版面空格的流式还原方法,所述获取版面中依次相邻的第一字符、第二字符、第三字符的过程,包括:通过版面分析方法获得所述字符的字体资源信息。
所述版面空格的流式还原方法,如果所述判断值大于第一字符所属类型的空格符的字宽值时,还包括计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。
所述版面空格的流式还原方法,当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。
所述版面空格的流式还原方法,所述***的空格为该***位置前的字符所属的字体类型的空格。
所述版面空格的流式还原方法,所述右边值和左边值从所述字符所在字库中的字模信息中获取。
一种版面空格的流式还原***,包括:
获取单元:获取版面中依次相邻的第一字符、第二字符、第三字符;
字符间距计算单元:计算第一字符与第二字符之间的第一字符间距,并计算第二字符与第三字符之间的第二字符间距,再计算第一字符间距与第二字符间距的字符间距差值;
比较***单元:如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。
所述版面空格的流式还原***,所述字符间距计算单元中,计算第一字符与第二字符之间的第二字符间距的过程,包括:
获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。
所述版面空格的流式还原***,所述字符间距计算单元中,计算第二字符与第三字符之间的第二字符间距的过程,包括:
获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第一字符间距d2=x3-x2-w2。
所述版面空格的流式还原***,所述字符间距计算单元中,所述计算第一字符间距与第二字符间距的字符间距差值的过程为:字符间距差值D=d1-d2。
所述版面空格的流式还原***,所述预设差值阈值为3磅-5磅。
所述版面空格的流式还原***,所述获取单元中,通过版面分析方法获得所述字符的字体资源信息。
所述版面空格的流式还原***,所述比较***单元中,如果所述判断值大于第一字符所属类型的空格符的字宽值时,还包括计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。
所述版面空格的流式还原***,还包括连字符判断单元,当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。
所述版面空格的流式还原***,所述***的空格为该***位置前的字符所属的字体类型的空格。
所述版面空格的流式还原***,所述右边值和左边值从所述字符所在字库中的字模信息中获取。
本发明的上述技术方案相比现有技术具有以下优点,
(1)本发明所述的版面空格的流式还原方法,获取版面中依次相邻的三个字符;计算相邻两个的字符间距并计算出字符间距差值;如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。这样,通过计算前后两个字符之间的空白位置的间距,获取该间距是由于排版导致的均匀间距还是由于存在空格字符导致的,如果前后两处的字符间距的差值在阈值内,则说明其间隔均匀,不需要***空格,如果间距的差值较大,则通过比较判断是否***,这样,通过空格还原,将版面中需要的空格在流式转换时,增加所需的空格,这样可以依据实际版面的呈现效果进行流式空格的还原处理,使得版面的展示更加准确。
(2)本发明所述的版面空格的流式还原方法,字符间距通过相邻的两个字符的坐标差值减去前面字符的字宽获得,由于坐标值和字宽都是通过版面分析后的字体资源信息容易获得,这样就可直接调用来计算出其字符间距值。
(3)本发明所述的版面空格的流式还原方法,预设差值阈值为3磅-5磅,由于字体类型等信息的不同,因此即使是均匀排版导致的空白也可能字符间距并不完全相同,因此该字符间距的差值在一定范围内则认为其字符分布均匀,无需***空格,该预设差值阈值为3磅-5磅,符合字体排布时存在的间隔差的正常分布范围。
(4)本发明所述的版面空格的流式还原方法,通过版面分析方法获得所述字符的字体资源信息,所述右边值和左边值从所述字符所在字库中的字模信息中获取。这些信息都是可以直接从所存在的资源信息中直接获取并调用的,减小了计算的复杂度的同时,也提高了数据获取的精度。
(5)所述版面空格的流式还原方法,所述***的空格为该***位置前的字符所属的字体类型的空格。由于本发明的方案中,考虑的是在合适的字符后***恰当的空格,因此再***该空格时与该位置前的字符保持了字体一致,从而最恰当的还原出空格的形式,也提高了版面的可视性。
(6)所述版面空格的流式还原方法,当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。通过对连字符的判断,获取了分行的单词的字符,针对该特殊情况特殊处理,从而达到了更好的处理效果。
(7)所述版面空格的流式还原方法,当空白位置较多时,通过计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,获得所需***的空格的个数,这样根据需要***多个字符,更好的还原出原来版面的信息。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是一幅原版面样图;
图2是图1所对应的一幅重排后存在空格显示错误的样图;
图3是图1所对应的一幅重排后存在空格显示错误的另一种样图;
图4是另一幅原版面样图;
图5是图4中版面重排后出现的存在空格显示错误的样图;
图6是本发明的一个实施例中版面空格的流式还原方法的流程图;
图7是本发明的一个实施例中版面空格的流式还原方法的字符示意图。
具体实施方式
实施例1:
本发明提供一种版面空格的流式还原方法,流程图如图6,包括如下步骤:
(1)获取版面中依次相邻的第一字符O、第二字符I、第三字符g,如图7中。
(2)计算第一字符O与第二字符I之间的第一字符间距d1,并计算第二字符I与第三字符g之间的第二字符间距d2,再计算第一字符间距d1与第二字符间距d2的字符间距差值D=d1-d2。
(3)如果所述字符间距差值D小于预设差值阈值,此处阈值为5磅,则不***空格;否则,计算第一字符O的右边值R1和第二字符I的左边值L2的和作为边值和R1+L2,所述右边值R1和左边值L2从所述字符所在字库中的字模信息中获取。然后计算所述第一字符间距d1与所述边值和R1+L2的差值作为判断值S,S=d1-(R1+L2),如果所述判断值S大于第一字符所属类型的空格符的字宽值w0,则在第一字符后***空格,否则不***空格。
本实施例所述的一种版面空格的流式还原方法,通过计算前后两个字符之间的空白位置的间距,获取该间距是由于排版导致的均匀间距还是由于存在空格字符导致的,如果前后两处的字符间距的差值在阈值内,则说明其间隔均匀,不需要***空格,如果间距的差值较大,则通过比较判断是否***,这样,通过空格还原,将版面中需要的空格在流式转换时,增加所需的空格,这样可以依据实际版面的呈现效果进行流式空格的还原处理,使得版面的展示更加准确。
实施例2:
(1)获取版面中依次相邻的三个字符,如第一字符O、第二字符I、第三字符g。通过此步骤可以获得版面或文档的结构化信息中的所有数据参数,从而得到所述字符对应的字体资源信息,包括字体、坐标、字宽等数据。这些信息都是可以直接从所存在的资源信息中直接获取并调用的,减小了计算的复杂度的同时,也提高了数据获取的精度。
(2)计算第一字符O与第二字符I之间的第一字符间距d1,并计算第二字符I与第三字符g之间的第二字符间距d2,再计算第一字符间距d1与第二字符间距d2的字符间距差值D=d1-d2,其中,此步骤中,获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第一字符间距d2=x3-x2-w2。所述的坐标x1、x2、以及字宽w1、w2都可以从文档的结构化信息通过字体资源信息获得。字符间距通过相邻的两个字符的坐标差值减去前面字符的字宽获得,由于坐标值和字宽都是通过版面分析后的字体资源信息容易获得,这样就可直接调用来计算出其字符间距值。
(3)如果所述字符间距差值D小于预设差值阈值,此处阈值为3磅,则不***空格;否则,计算第一字符O的右边值R1和第二字符I的左边值L2的和作为边值和R1+L2,所述右边值R1和左边值L2从所述字符所在字库中的字模信息中获取。然后计算所述第一字符间距d1与所述边值和R1+L2的差值作为判断值S,S=d1-(R1+L2),如果所述判断值S大于第一字符所属类型的空格符的字宽值w0,此时,还计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。当空白位置较多时,通过计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,获得所需***的空格的个数,这样根据需要***多个字符,更好的还原出原来版面的信息。此处***的空格为第一字符所属的字体类型的空格。由于本发明的方案中,考虑的是在合适的字符后***恰当的空格,因此再***该空格时与该位置前的字符保持了字体一致,从而最恰当的还原出空格的形式,也提高了版面的可视性。
作为可以变换的实施方式,所述预设差值阈值为3磅-5磅。由于字体类型等信息的不同,因此即使是均匀排版导致的空白也可能字符间距并不完全相同,因此该字符间距的差值在一定范围内则认为其字符分布均匀,无需***空格,该预设差值阈值为3磅-5磅,符合字体排布时存在的间隔差的正常分布范围。
作为进一步优选的实施方式,在进行流式重排时,当字体为英文时,对于某一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。通过对连字符的判断,获取了分行的单词的字符,针对该特殊情况特殊处理,从而达到了更好的处理效果。
实施例3:
本实施例提供一种版面空格的流式还原***,包括:
获取单元:获取版面中依次相邻的第一字符、第二字符、第三字符。通过版面分析方法获得所述字符的字体资源信息,其中包含有字库信息,字库信息中有字模信息。通过版面分析方法获得所述字符的字体资源信息,所述右边值和左边值从所述字符所在字库中的字模信息中获取。这些信息都是可以直接从所存在的资源信息中直接获取并调用的,减小了计算的复杂度的同时,也提高了数据获取的精度。
字符间距计算单元:计算第一字符与第二字符之间的第一字符间距,并计算第二字符与第三字符之间的第二字符间距,再计算第一字符间距与第二字符间距的字符间距差值。
所述字符间距计算单元中,获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1;获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第一字符间距d2=x3-x2-w2,字符间距差值D=d1-d2。上述字符间距通过相邻的两个字符的坐标差值减去前面字符的字宽获得,由于坐标值和字宽都是通过版面分析后的字体资源信息容易获得,这样就可直接调用来计算出其字符间距值。
比较***单元:如果所述字符间距差值小于预设差值阈值(述预设差值阈值为3磅-5磅),则不***空格;否则,计算第一字符的右边值和第二字符的左边值(所述右边值和左边值从所述字符所在字库中的字模信息中获取)的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格,所述***的空格为第一字符所属的字体类型的空格。所述***的空格为该***位置前的字符所属的字体类型的空格。由于本发明的方案中,考虑的是在合适的字符后***恰当的空格,因此再***该空格时与该位置前的字符保持了字体一致,从而最恰当的还原出空格的形式,也提高了版面的可视性。所述预设差值阈值一般为3磅-5磅,由于字体类型等信息的不同,因此即使是均匀排版导致的空白也可能字符间距并不完全相同,因此该字符间距的差值在一定范围内则认为其字符分布均匀,无需***空格,该预设差值阈值为3磅-5磅,符合字体排布时存在的间隔差的正常分布范围。
作为进一步优选的实施方式,所述版面空格的流式还原***,所述比较***单元中,如果所述判断值大于第一字符所属类型的空格符的字宽值时,还包括计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。当空白位置较多时,通过计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,获得所需***的空格的个数,这样根据需要***多个字符,更好的还原出原来版面的信息。
作为另外的实施方式中,考虑英文中连字符的情况,所述版面空格的流式还原***,还包括连字符判断单元,当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。通过对连字符的判断,获取了分行的单词的字符,针对该特殊情况特殊处理,从而达到了更好的处理效果。
本发明所述的版面空格的流式还原方法,获取版面中依次相邻的三个字符;计算相邻两个的字符间距并计算出字符间距差值;如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。这样,通过计算前后两个字符之间的空白位置的间距,获取该间距是由于排版导致的均匀间距还是由于存在空格字符导致的,如果前后两处的字符间距的差值在阈值内,则说明其间隔均匀,不需要***空格,如果间距的差值较大,则通过比较判断是否***,这样,通过空格还原,将版面中需要的空格在流式转换时,增加所需的空格,这样可以依据实际版面的呈现效果进行流式空格的还原处理,使得版面的展示更加准确。
实施例4:
下面给出另外一个版面空格的流式还原方法的具体的实施方式。主要过程如下:
首先,逐页获取版式文档中结构化信息中所有流式段落下流式句对应版面页的页面块pageBlock信息{即n个pageObject},通过pageObject可以获取文本或其他非文本如Image等版式图元信息,例如Text{fontId,fontSize,以及n各TextCode信息{x,y,charspace,textString},其他可能的版式精确定位信息}。其中fontId可以指向版式文档字体信息(包含可能的内嵌字字体信息)或版式文档中的结构化流式信息的样式表中的字体信息。另还需要逐页获取版式文档中结构化信息中所有流式段落下流式句对应版面页面版心宽度layoutPageWidht。
然后,逐逻辑段获取版式页面中各文本字符图元的字宽列表。首先从上述逐个逻辑段落中的版面文本句TextCode中获取四元组信息{x,y,charpace,textString},其中文本句的文本为textString,其首字符的版面坐标为(x,y),文本中各字符的间距为charspace。然后从textString文本句中逐个取出其字符,在该字符所在的字库中获取其字模Glyph信息中的字宽、Left/Right Bearing值(即左边值、右边值,见图7),再与该字符的x坐标值相加(对于textString中首字符,可以直接取到x值;对于非首字符,x值为该字模Glyph中的Right Bearing值加上字宽列表中的上一个字符的字宽值以及charspace值),将这个最终值记录到字宽列表中。备注,跨文本句获取前后字符字宽列表算法还是同上,每当字宽值>layoutPageWidth时,首先需要将该字宽值-layoutPageWidth,并且若待处理的是英文字符,若前一字符为连字符如”-”,则不计该字宽,并且在该字符尾动态加入一个流式空格;若前一字符不为连字符,则简单加入一个流式空格。
获得了上述坐标信息、字宽信息以及左边值、右边值信息后,则可以进行流式空格的还原处理,依次对上述流式页面中各逻辑流式段落的每一个字符进行计算,判断该字符后是否需要***空格,对所有的字符计算完毕后,则完成了版面空格的流式还原。
对于每个字符,其后面空格的流式还原方法如下:
首先,计算第一字符O与第二字符I之间的第一字符间距d1,并计算第二字符I与第三字符g之间的第二字符间距d2,再计算第一字符间距d1与第二字符间距d2的字符间距差值D=d1-d2,其中,此步骤中,获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第一字符间距d2=x3-x2-w2,计算出字符间距差值D=d1-d2。
然后,进行判断,如果所述字符间距差值D小于预设差值阈值,此处阈值为4磅,则不***空格。
否则,计算第一字符O的右边值R1和第二字符I的左边值L2的和作为边值和R1+L2,所述右边值R1和左边值L2从所述字符所在字库中的字模信息中获取。
然后计算所述第一字符间距d1与所述边值和R1+L2的差值作为判断值S,S=d1-(R1+L2),如果所述判断值S大于第一字符所属类型的空格符的字宽值w0,则在第一字符后***空格。此处***的空格为第一字符所属的字体类型的空格。
然后将所有的字符作为第一字符,进行上述处理,则得到了版面空格的流式还原结果。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (20)

1.一种版面空格的流式还原方法,其特征在于,包括以下步骤:
逐页获取版式文档中结构化信息中所有流式段落下流式句对应版面页的页面块信息,获取版面中依次相邻的第一字符、第二字符、第三字符;
计算第一字符与第二字符之间的第一字符间距,并计算第二字符与第三字符之间的第二字符间距,再计算第一字符间距与第二字符间距的字符间距差值;
如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。
2.根据权利要求1所述版面空格的流式还原方法,其特征在于,所述计算第一字符与第二字符之间的第一字符间距的过程,包括:
获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。
3.根据权利要求1或2所述版面空格的流式还原方法,其特征在于,所述计算第二字符与第三字符之间的第二字符间距的过程,包括:
获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第二字符间距d2=x3-x2-w2。
4.根据权利要求3所述版面空格的流式还原方法,其特征在于,所述计算第一字符间距与第二字符间距的字符间距差值的过程为:字符间距差值D=d1-d2。
5.根据权利要求4所述版面空格的流式还原方法,其特征在于,所述预设差值阈值为3磅-5磅。
6.根据权利要求1或2所述版面空格的流式还原方法,其特征在于:所述获取版面中依次相邻的第一字符、第二字符、第三字符的过程,包括:通过版面分析方法获得所述字符的字体资源信息。
7.根据权利要求6所述版面空格的流式还原方法,其特征在于:如果所述判断值大于第一字符所属类型的空格符的字宽值时,还包括计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。
8.根据权利要求1所述版面空格的流式还原方法,其特征在于:当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。
9.根据权利要求8所述版面空格的流式还原方法,其特征在于:所述***的空格为该***位置前的字符所属的字体类型的空格。
10.根据权利要求1所述版面空格的流式还原方法,其特征在于:所述右边值和左边值从所述字符所在字库中的字模信息中获取。
11.一种版面空格的流式还原***,其特征在于,包括:
获取单元:逐页获取版式文档中结构化信息中所有流式段落下流式句对应版面页的页面块信息,获取版面中依次相邻的第一字符、第二字符、第三字符;
字符间距计算单元:计算第一字符与第二字符之间的第一字符间距,并计算第二字符与第三字符之间的第二字符间距,再计算第一字符间距与第二字符间距的字符间距差值;
比较***单元:如果所述字符间距差值小于预设差值阈值,则不***空格;否则,计算第一字符的右边值和第二字符的左边值的和作为边值和,然后计算所述第一字符间距与所述边值和的差值作为判断值,如果所述判断值大于第一字符所属类型的空格符的字宽值,则在第一字符后***空格,否则不***空格。
12.根据权利要求11所述版面空格的流式还原***,其特征在于,所述字符间距计算单元中,计算第一字符与第二字符之间的第一字符间距的过程,包括:
获得第一字符的坐标x1、第二字符的坐标x2,第一字符的字宽w1,则第一字符间距d1=x2-x1-w1。
13.根据权利要求11或12所述版面空格的流式还原***,其特征在于,所述字符间距计算单元中,计算第二字符与第三字符之间的第二字符间距的过程,包括:
获得第二字符的坐标x2、第三字符的坐标x3,第二字符的字宽w2,则第二字符间距d2=x3-x2-w2。
14.根据权利要求13中所述版面空格的流式还原***,其特征在于,所述字符间距计算单元中,所述计算第一字符间距与第二字符间距的字符间距差值的过程为:字符间距差值D=d1-d2。
15.根据权利要求14所述版面空格的流式还原***,其特征在于,所述预设差值阈值为3磅-5磅。
16.根据权利要求15所述版面空格的流式还原***,其特征在于:所述获取单元中,通过版面分析方法获得所述字符的字体资源信息。
17.根据权利要求16所述版面空格的流式还原***,其特征在于:所述比较***单元中,如果所述判断值大于第一字符所属类型的空格符的字宽值时,还包括计算所述判断值S与所述第一字符所属类型的空格符的字宽值w0的比值n,n=S/w0,然后在第一字符后***n个空格。
18.根据权利要求17所述版面空格的流式还原***,其特征在于:还包括连字符判断单元,当字体为英文时,对于一行的首字符,如果其前一字符为英文的连字符“-”时,则该首字符前不***空格;否则在该首字符前***一个空格。
19.根据权利要求18所述版面空格的流式还原***,其特征在于:所述***的空格为该***位置前的字符所属的字体类型的空格。
20.根据权利要求19所述版面空格的流式还原***,其特征在于:所述右边值和左边值从所述字符所在字库中的字模信息中获取。
CN201310462663.0A 2013-09-30 2013-09-30 一种版面空格的流式还原方法与*** Active CN104516868B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310462663.0A CN104516868B (zh) 2013-09-30 2013-09-30 一种版面空格的流式还原方法与***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310462663.0A CN104516868B (zh) 2013-09-30 2013-09-30 一种版面空格的流式还原方法与***

Publications (2)

Publication Number Publication Date
CN104516868A CN104516868A (zh) 2015-04-15
CN104516868B true CN104516868B (zh) 2018-03-06

Family

ID=52792194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310462663.0A Active CN104516868B (zh) 2013-09-30 2013-09-30 一种版面空格的流式还原方法与***

Country Status (1)

Country Link
CN (1) CN104516868B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105335346B (zh) * 2015-11-09 2018-12-04 汉王科技股份有限公司 一种pdf文档的文本提取方法和装置
CN105893342A (zh) * 2015-12-29 2016-08-24 乐视移动智能信息技术(北京)有限公司 一种文本信息处理方法及装置
CN111695414B (zh) * 2020-04-28 2024-03-01 北京奇艺世纪科技有限公司 文档处理方法及装置、电子设备、计算机可读存储介质
CN112699634B (zh) * 2020-12-28 2022-05-24 掌阅科技股份有限公司 电子书的排版处理方法、电子设备及存储介质
CN113723048A (zh) * 2021-09-06 2021-11-30 北京字跳网络技术有限公司 设置富文本间距的方法、装置、存储介质及电子设备
CN115034205B (zh) * 2022-06-15 2024-06-21 中国银行股份有限公司 空格字段的处理方法及装置、电子设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295290A (zh) * 2008-06-11 2008-10-29 北大方正集团有限公司 一种多行文字行中排版的方法
CN101901333A (zh) * 2009-05-25 2010-12-01 汉王科技股份有限公司 文本图像中切分词的方法及使用该方法的识别装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7827484B2 (en) * 2005-09-02 2010-11-02 Xerox Corporation Text correction for PDF converters
JP5248845B2 (ja) * 2006-12-13 2013-07-31 キヤノン株式会社 文書処理装置、文書処理方法、プログラムおよび記憶媒体
CN101876967B (zh) * 2010-03-25 2012-05-02 深圳市万兴软件有限公司 一种pdf文本段落生成的方法
CN101980185B (zh) * 2010-10-29 2013-03-27 方正国际软件有限公司 去除从双层电子文件中复制的文本中的空格的方法与***

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101295290A (zh) * 2008-06-11 2008-10-29 北大方正集团有限公司 一种多行文字行中排版的方法
CN101901333A (zh) * 2009-05-25 2010-12-01 汉王科技股份有限公司 文本图像中切分词的方法及使用该方法的识别装置

Also Published As

Publication number Publication date
CN104516868A (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
CN104516868B (zh) 一种版面空格的流式还原方法与***
CA2937702C (en) Emphasizing a portion of the visible content elements of a markup language document
CN107092643B (zh) 一种弹幕渲染方法及装置
CN101876967B (zh) 一种pdf文本段落生成的方法
CN103177709B (zh) 字符显示方法和装置
CN100498927C (zh) 二维图形引擎中的点阵字符的缩进方法与中文处理方法
CN104111922B (zh) 一种流式文档的处理方法及装置
CN108090037B (zh) 自动排版方法和装置
US7786994B2 (en) Determination of unicode points from glyph elements
WO2015180422A1 (zh) 页面排版方法及装置
CN107092585A (zh) 基于可缩放矢量图形的蒙古文显示方法及***
CN104462036B (zh) 一种同步编辑文档的格式信息的方法及***
CN104111913B (zh) 一种流式文档的处理方法及装置
CN109714627A (zh) 一种评论信息的渲染方法、装置及设备
CN113436298B (zh) 一种自动生成汉字笔顺动画的方法、装置及其相关组件
CN106558019B (zh) 图片排列方法及装置
CN109948129B (zh) 基于三维引擎的富文本编辑方法、编辑器及电子设备
JP2004213607A (ja) 日本語テキストの調整用グリッドトラッキング及び文字組間隔
KR20110021714A (ko) 전자 문서를 페이지별로 컴퓨터 그래픽스로서 공급하는 방법 및 장치
US20080256441A1 (en) Flash rich textfields
EP3614279A1 (en) A method and a device for displaying text with a proportional font
CN106598934A (zh) 电子书数据的显示方法、装置及终端设备
US20160170941A1 (en) Replicating the appearance of typographical attributes and text adornments in digital publications
CN112765506A (zh) 一种页面文本内容显示方法、装置、设备及存储介质
US20040125107A1 (en) Coordinating grid tracking and mojikumi spacing of Japanese text

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
TR01 Transfer of patent right

Effective date of registration: 20220622

Address after: 3007, Hengqin international financial center building, No. 58, Huajin street, Hengqin new area, Zhuhai, Guangdong 519031

Patentee after: New founder holdings development Co.,Ltd.

Patentee after: Beijing Fangzheng apapi Technology Co., Ltd.

Address before: 100871, Beijing, Haidian District Cheng Fu Road 298, founder building, 9 floor

Patentee before: PEKING UNIVERSITY FOUNDER GROUP Co.,Ltd.

Patentee before: Beijing Fangzheng apapi Technology Co., Ltd.

TR01 Transfer of patent right