一种OFD文档的文字旋转定位方法、系统和存储介质技术方案

技术编号:36448930 阅读:31 留言:0更新日期:2023-01-25 22:44
本发明专利技术涉及一种OFD文档的文字旋转定位方法、系统和存储介质,包括:获取待旋转OFD文本在原始位置处的目标文本框;基于目标旋转角度,得到并根据目标文本框的旋转参数,对目标文本框进行旋转,得到待旋转OFD文本的第一旋转位置;根据待旋转OFD文本在原始位置处的紧贴矩形和待旋转OFD文本在第一旋转位置处的紧贴矩形,计算得到目标文本框的位移参数;根据位移参数,对包含待旋转OFD文本的目标文本框进行移动,得到待旋转OFD文本的目标旋转位置。本发明专利技术通过对OFD文档的文字进行旋转,有效地避免了旋转时文本框与文字不紧贴带来的误差,实现了不依赖代码和字库接口对文字进行旋转,且具有较好的视觉效果。且具有较好的视觉效果。且具有较好的视觉效果。

【技术实现步骤摘要】
一种OFD文档的文字旋转定位方法、系统和存储介质


[0001]本专利技术涉及IT数字化
,尤其涉及一种OFD文档的文字旋转定位方法、系统和存储介质。

技术介绍

[0002]目前对OFD文档中的文字(文字串)进行旋转时,常见的方式有两种,一是组合CharDirection与ReadDirection属性;二是调整文本对象中的CTM(“当前的变换矩阵Current Transformation Matrix”)。前者相对简单,但灵活度不够;后者非常灵活,但计算复杂一些。
[0003]OFD是一种板式文档,版式文档的一个特点是便于浏览但难于编辑(例如PDF是一种版式文件,一般不易被编辑)。OFD浏览软件对OFD文件进行编辑的功能通常很弱,例如对文字进行旋转、移动等编辑操作,OFD浏览软件通常不提供这些功能。对专业的OFD编辑人员,常利用OFD文件也是一种zip压缩文件的特点,将之用解压工具解压,再直接修改其中(xml)文件内容来对OFD文件进行调整。在手工修改的情形下,无法依靠代码来计算CTM中的各个参数。因此,亟需提供一种技术方案解决本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种OFD文档的文字旋转定位方法,其特征在于,包括:获取待旋转OFD文本在原始位置处的目标文本框;基于目标旋转角度,得到并根据所述目标文本框的旋转参数,对包含所述待旋转OFD文本的所述目标文本框进行旋转,得到所述待旋转OFD文本的第一旋转位置;根据所述待旋转OFD文本在所述原始位置处的原始紧贴矩形和所述待旋转OFD文本在所述第一旋转位置处的第一紧贴矩形,计算得到所述目标文本框的位移参数;根据所述位移参数,对包含所述待旋转OFD文本的所述目标文本框进行移动,得到所述待旋转OFD文本的目标旋转位置。2.根据权利要求1所述的一种OFD文档的文字旋转定位方法,其特征在于,所述目标文本框为:Boundary文本框。3.根据权利要求1所述的一种OFD文档的文字旋转定位方法,其特征在于,每个目标旋转角度对应一组旋转参数;所述根据所述目标文本框的旋转参数,对包含所述待旋转OFD文本的所述目标文本框进行旋转,得到所述待旋转OFD文本的第一旋转位置,包括:选取所述目标文本框的左上角作为旋转点,并根据所述目标旋转角度对应的一组旋转参数,控制所述目标文本框以所述旋转点进行旋转,得到所述待旋转OFD文本的所述第一旋转位置。4.根据权利要求1所述的一种OFD文档的文字旋转定位方法,其特征在于,所述位移参数包括:第一位移参数和第二位移参数;所述根据所述待旋转OFD文本在所述原始位置处的原始紧贴矩形和所述待旋转OFD文本在所述第一旋转位置处的第一紧贴矩形,计算得到所述目标文本框的位移参数,包括:根据第一精确位移参数计算公式、所述原始紧贴矩形和所述第一紧贴矩形,计算得到所述目标文本框的第一位移参数,或,根据第一估算位移参数计算公式、所述原始紧贴矩形和所述第一紧贴矩形,计算得到所述目标文本框的第一位移参数;根据第二精确位移参数计算公式、所述原始紧贴矩形和所述第一紧贴矩形,计算得到所述目标文本框的第二位移参数,或,根据第二估算位移参数计算公式、所述原始紧贴矩形和所述第一紧贴矩形,计算得到所述目标文本框的第二位移参数。5.根据权利要求4所述的一种OFD文档的文字旋转定位方法,其特征在于,所述待旋转OFD文本包括:至少一个目标字符,所述目标旋转角度为:90度、180度或270度;当所述目标旋转角度为90度时,所述第一精确位移参数计算公式为:e1=ptStart.y

Min(metrics[i].bearingY

metrics[i].height)+ptStart.x+metrics[0].bea ringX;其中,e1为所述目标旋转角度为90度时所对应的第一位移参数,ptStart.y为所述待旋转OFD文本中的第一个字符的字型基点在对象坐标系下的X坐标,ptStart.x为所述待旋转OFD文本中的第一个文字的字型基点在对象坐标系下的Y坐标,metrics[i]表示所述待旋转OFD文本中的第i个字体的规格,bearingY表示Y方向上的文字度量值,bearingX表示X方向上的文字度量值,height表示文字度量高度值,Min(metrics[i].bearingY

metrics[i].height)表示在所述待旋转OFD文本中,每个字符的bearingY

height值中的最小值,metrics[0].bearingX表示所述待旋转OFD文本的第一个字符在X方向上的文字度量值;当所述目标旋转角度为90度时,所述第二精确位移参数计算公式为:f1=ptStart.y

Max(metrics[i].bearingY)

ptStart.x

metrics[0].bearingX;其中,
f1为所述目标旋转角度为90度时所对应的第二位移参数,Max(metrics[i].bearingY)表示在所述待旋转OFD文本中,所有字符中bearingY的最大值;当所述目标旋转角度为90度时,所述第一估算位移参数计算公式为:e1=ptStart.y+ptStart.x+fontSize
×
α_x[0]
×
0.1;其中,fontSize为所述待旋转OFD文本的字体大小,α_x[0]表示所述待旋转OFD文本中的第一个字符的α_x值,α_x表示不同字符的宽度与所述待旋转OFD文本中对应字符的fontSize的比值;当所述目标旋转角度为90度时,所述第二估算位移参数计算公式为:f1=ptStart.y

ptStart.x

fontSize
×
(α_y[max]

α_x[0]);其中,α_y[max]表示所述待旋转OFD文本中所有字符的α_y值中的最大值;当所述目标旋转角度为180度时,所述第一精确位移参数计算公式为:e2=ptStart.x+Σ

x[i]+metrics[n

1].bearingX+metrics[n

1].width+ptStart.x+metrics[0].bearingX;其中,e2为所述目标旋转角度为180度时所对应的第一位移参数,metrics[0]表示所述待旋转OFD文本的首个字符,metrics[n

1]表示所述待旋转OFD文本的最后一个字符,

【专利技术属性】
技术研发人员:康凯马二群
申请(专利权)人:福昕鲲鹏北京信息科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1