PDF框坐标是相对坐标还是绝对坐标?

PDF框坐标是相对坐标还是绝对坐标?,pdf,pdf-generation,pypdf,Pdf,Pdf Generation,Pypdf,我想使用pyPDF以编程方式编辑PDF。目前,我正在努力解释各种PDF框(TrimBox、MediaBox等)维度。每个框有四个维度存储为四元组,例如: TrimBox: 56.69 56.69 1040.31 751.18 根据PDF规范,它们应该描述一个矩形,当然(56.69,56.69)确定了这个矩形的左上角。但是,(1040.31751.18)是解释为该矩形的右下角,还是解释为相对于左上角的向量 显然,这个答案在排字工人中是如此广为人知,以至于到目前为止

我想使用pyPDF以编程方式编辑PDF。目前,我正在努力解释各种PDF框(TrimBox、MediaBox等)维度。每个框有四个维度存储为四元组,例如:

TrimBox:           56.69    56.69  1040.31   751.18
根据PDF规范,它们应该描述一个矩形,当然(56.69,56.69)确定了这个矩形的左上角。但是,(1040.31751.18)是解释为该矩形的右下角,还是解释为相对于左上角的向量


显然,这个答案在排字工人中是如此广为人知,以至于到目前为止,我在任何地方都找不到明确的答案。

经过进一步的修改,我实际上找到了我问题的两个答案。就pyPDF源而言,四个方框坐标应为(x1、y1、x2、y2),其中前两个代表左下角,后两个代表右上角

但是,当我将坐标解释为(x,y,w,h)时,在PDF的TrimBox中绘制效果非常好,其中(x,y)是左上角,而(w,h)是从那里开始的矩形的宽度和高度


所以,我可能第一种解释是错误的,但至少第二种解释对我来说是有效的。

经过一些额外的修改,我实际上找到了我问题的两个答案。就pyPDF源而言,四个方框坐标应为(x1、y1、x2、y2),其中前两个代表左下角,后两个代表右上角

但是,当我将坐标解释为(x,y,w,h)时,在PDF的TrimBox中绘制效果非常好,其中(x,y)是左上角,而(w,h)是从那里开始的矩形的宽度和高度


因此,我可能第一种解释是错误的,但至少第二种解释对我是有效的。

丹尼尔,因为左下角是坐标系的原点,只要修剪框的左下角在原点(即,当(x1,y1,x2,y2)=(0,0)时,将(x1,y1,x2,y2)视为(x,y,w,h)就有效


顺便说一句,我花了一些时间才发现使用的单位是点——这一点在PDF规范文档中没有明确说明。显然,它不是由物理学家写的

Daniel,由于左下角是坐标系的原点,只要装饰框的左下角在原点(即(x1,y1)=(0,0))处,就可以将(x1,y1,x2,y2)视为(x,y,w,h)


顺便说一句,我花了一些时间才发现使用的单位是点——这一点在PDF规范文档中没有明确说明。显然,它不是由物理学家写的

谢谢你的消息,阿曼。尽管如此,我仍然不清楚为什么在我的定位算法中将坐标视为(x,y,w,h)即使在(x1,y1)=(56.69,56.69)的情况下仍然有效。也许左下角的坐标到目前为止已经足够接近原点,以至于微小的差异不会产生明显的差异。单位不是“点”。单位由用户定义,默认为1/72英寸。请参见PDF规范第4.2.1节坐标空间。用于定义矩形的值是所定义矩形相对角的坐标。值可以是(左下、右上)或(左上、右下);请参阅PDF规范的第3.8.4节矩形。该规范可在以下网址找到:Aman,谢谢您提供的信息。尽管如此,我仍然不清楚为什么在我的定位算法中将坐标视为(x,y,w,h)即使在(x1,y1)=(56.69,56.69)的情况下仍然有效。也许左下角的坐标到目前为止已经足够接近原点,以至于微小的差异不会产生明显的差异。单位不是“点”。单位由用户定义,默认为1/72英寸。请参见PDF规范第4.2.1节坐标空间。用于定义矩形的值是所定义矩形相对角的坐标。值可以是(左下、右上)或(左上、右下);请参阅PDF规范的第3.8.4节矩形。在您第一次解释正确时,可以找到该规范。只要x1,y1是(0,0),那么这两种解释产生相同的矩形。事实并非总是如此。不要依赖它。注:PDF单位为“点”,即1/72英寸。8.5“x 11”=612pt x 792pty您的第一个解释是正确的。只要x1,y1是(0,0),那么这两种解释产生相同的矩形。事实并非总是如此。不要依赖它。注:PDF单位为“点”,即1/72英寸。8.5英寸x 11英寸=612吨x 792吨