如何判断PDF文本是否已旋转

迈克尔·莫滕森

我正在尝试使用iText7从PDF提取文本。我正在使用IEventListener来获取页面的所有部分,尽管某些文本已旋转。我可以找到有关如何将旋转后的文本插入PDF的示例,但是找不到有关如何分辨给定文本段是否旋转的任何信息。

有人可以帮忙吗?

public void EventOccurred(IEventData data, EventType type)
{
    PdfPart part = null;

    switch (type)
    {
        case EventType.BEGIN_TEXT:
            break;
        case EventType.RENDER_TEXT:
            part = new PdfTextPart(PageNumber, data as TextRenderInfo);
            Parts.Add(part);
            break;
        case EventType.END_TEXT:
            break;
        case EventType.RENDER_IMAGE:
            var imageData = data as ImageRenderInfo;
            //this.HandleImage(imageData);
            break;
        case EventType.RENDER_PATH:
            part = new PdfLinePart(PageNumber, data as PathRenderInfo);
            Parts.Add(part);
            break;
        case EventType.CLIP_PATH_CHANGED:
            break;
        default:
            break;
    }
}
public PdfTextPart(Int32 pageNumber, TextRenderInfo info) : base(pageNumber)
{
    Text = info.GetText();

    var font = info.GetFont().GetFontProgram().GetFontNames();
    Font = font.GetFontName();

    if (font.IsItalic()) { this.IsItalic = true; }
    if (font.IsBold()) { this.IsBold = true; }
    if (font.IsUnderline()) { this.IsUnderline = true; }
}
mkl

TextRenderInfo有一条基线。该基线是a LineSegment,因此具有起点和终点。现在,您只需要确定这两个点之间的线的角度即可。

即为TextRenderInfo info

LineSegment baseline = info.GetBaseline();
Vector startPoint = baseline.GetStartPoint();
Vector endPoint = baseline.GetEndPoint();
Vector direction = endLocation.Subtract(startLocation);
double angle = Math.Atan2(direction.Get(Vector.I2), direction.Get(Vector.I1));

结果显然在弧度上。

您可能还必须考虑页面旋转(如果我没记错的话),该页面旋转没有计算到上述坐标中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何判断文本是否适合单元格?

来自分类Dev

如何判断当前版本是否已升级或全新安装

来自分类Dev

如何连续检查文本文件中的文本是否已更改为空?爪哇

来自分类Dev

如何判断是否已认证

来自分类Dev

如何知道脚本是否已加载

来自分类Dev

如何判断jquery版本是否大于1.7?

来自分类Dev

如何判断是否已安装JRE或JDK

来自分类Dev

如何判断int是否已更改

来自分类Dev

如何判断文件系统是否已缩小?

来自分类Dev

如何判断recaptcha是否已解决?

来自分类Dev

如何查找链接的异步脚本是否已加载?

来自分类Dev

如何判断Flex Spinner列表是否还在旋转?

来自分类Dev

如何检测文本是否包裹在标签中?

来自分类Dev

如何检查按钮的文本是否包含数组的元素?

来自分类Dev

如何验证文本是否连续存在。(断言与验证)

来自分类Dev

如何检查搜索框文本是否与链接匹配?

来自分类Dev

如何判断Rust库是否已弃用?

来自分类Dev

Postgres libpq如何判断连接是否已终止

来自分类Dev

如何判断单元格值是否已通过验证

来自分类Dev

如何判断Android应用是否处于“已停止”状态?

来自分类Dev

如何判断数据库记录是否已更改?

来自分类Dev

如何判断套接字是否已断开连接(Java)

来自分类Dev

在Github中,如何判断目录是否已删除?

来自分类Dev

如何判断变量的内容是否已宏定义?

来自分类Dev

如何判断网络流量是否已加密

来自分类Dev

Android如何判断对话框是否已关闭或完成

来自分类Dev

如何判断是否已安装DirectX 9.0c

来自分类Dev

如何判断Rust库是否已弃用?

来自分类Dev

如何判断我的每小时 cron 作业是否已运行?

Related 相关文章

热门标签

归档