Java 如何在pdf中计算文本旋转角度

Java 如何在pdf中计算文本旋转角度,java,pdf,Java,Pdf,请给出下面的流和Tm矩阵,我如何计算特定文本的旋转角度 /F1 1 Tf 0-43.92 43.92 0 334.093 672.9771 Tm 0克 0.0088 Tc 0.0877太瓦 (字体、字体和更多字体!)Tj如果转换矩阵T=[a b c d e f]仅描述旋转、缩放和 平移(但不倾斜),然后可以从前两个角度计算旋转角度 组件作为 double angle = Math.atan2(b, a); 请注意,atan2()以弧度为单位返回角度。如果您需要以度为单位的结果,您可以 将其乘以

请给出下面的流和Tm矩阵,我如何计算特定文本的旋转角度

/F1 1 Tf 0-43.92 43.92 0 334.093 672.9771 Tm 0克 0.0088 Tc 0.0877太瓦
(字体、字体和更多字体!)Tj

如果转换矩阵
T=[a b c d e f]
仅描述旋转、缩放和 平移(但不倾斜),然后可以从前两个角度计算旋转角度 组件作为

double angle = Math.atan2(b, a);
请注意,
atan2()
以弧度为单位返回角度。如果您需要以度为单位的结果,您可以 将其乘以
180.0/Math.PI

添加:正如@mkl所说,如果涉及倾斜,上述公式给出了角度
x轴的旋转。(y轴的旋转可以计算为
atan2(-c,d)
)。

相对于什么的角度?(根据您对该问题的回答,您可能还必须考虑当前的转换矩阵和/或页面的旋转条目。)此外,请看。我已经在上面指定了一个转换矩阵,我的问题是如何获得文本从该矩阵旋转的角度???在您放置的链接中,您如何知道这是一个90°旋转的组合??请查看pdf规范中引用的问题中引用的公式:旋转[cos(angle)sin(angle)-sin(angle)cos(angle)0]。但没有倾斜。。。如果涉及倾斜,则atan2至少返回x轴旋转的角度。@mkl:感谢您的反馈,我已将其添加到答案中。感谢您的回复,请给出以下矩阵:[7.73,2.07,-2.07,7.73101.51736.37]Tm,当我计算数学时。atan2(2.07,7.73)返回“NaN”,这是什么???@MohammedMostafa:
Math.atan2(2.07,7.73)
在我测试它时给出了
0.26164883747339657
。请注意,它应该是
7.73
,而不是
7,73
。是的,这是我的错误,我修改了注释,我用另一个工具计算了它,得到了与您相同的结果。非常感谢Martin的帮助