如何使用 PDFBOX 获取文本旋转角度

问题描述

我的工作是去除 PDF 中的水印。我发现一些文本水印以某种角度显示在 PDF 中。所以我可以通过文字的角度来判断文字是否可能是水印。现在我在获取文本的旋转角度时遇到了问题。

我尝试调用 TextPositon.getRation()TextPositon.getDir(),我还引用了 Rotate text in pdfbox with java

mkl 从 PDFBox text extraction,rotation and font name,size 说“您的 getDir 仅返回 90° 的倍数,但可以以任意角度绘制文本”, 但我还是觉得很迷茫。

解决方法

来自 ExtractText 工具:

static int getAngle(TextPosition text)
{
    Matrix m = text.getTextMatrix().clone();
    m.concatenate(text.getFont().getFontMatrix());
    return (int) Math.round(Math.toDegrees(Math.atan2(m.getShearY(),m.getScaleY())));
}