You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提取PDF链接时通过Rect属性计算高度得到负值问题求助

PDF链接Rect属性计算高度为负值的解决方案

你出现高度为负的核心原因是两点规则遗漏:

  1. PDF规范中没有强制要求Rect数组的元素按左、下、右、上的固定顺序排列,四个值仅代表矩形两个对角点的坐标,实际使用前需要先做归一化处理:
  • 取两个X值的最小值为left、最大值为right
  • 取两个Y值的最小值为bottom、最大值为top
  • 宽度和高度的计算统一为width = right - left、height = top - bottom

针对你给出的示例,归一化计算逻辑如下:

# 原始Rect值:[97.0153, 116.556, 185.543, 21.5209]
x1, y1, x2, y2 = 97.0153, 116.556, 185.543, 21.5209
left = min(x1, x2) # 97.0153
right = max(x1, x2) # 185.543
bottom = min(y1, y2) # 21.5209
top = max(y1, y2) # 116.556
height = top - bottom # 95.0351,为正的有效值
  1. 部分PDF生成工具会修改页面默认用户空间坐标系,最常见的是通过页面/Matrix属性将Y轴翻转,适配左上角为原点、Y轴向下增大的屏幕坐标系,这种情况下你需要先读取页面的变换矩阵,对注释坐标做矩阵转换后再进行后续计算。如果需要将PDF坐标转换为常用的屏幕坐标系,可通过页面媒体框(MediaBox)的高度做快速转换:screen_y = media_box_height - pdf_y。

内容的提问来源于stack exchange,提问作者Evgeni Nabokov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 16:15:08