PDFBox - 查找页面尺寸

Joh*_*ith 25 java pdf pdfbox

如何使用PDFBox找到(以mm为单位)pdf页面的宽度和高度?目前,我正在使用这个:

System.out.println(page.getMediaBox().getHeight());
System.out.println(page.getMediaBox().getWidth());
Run Code Online (Sandbox Code Playgroud)

但结果是(不是mm):

842.0
595.22
Run Code Online (Sandbox Code Playgroud)

usr*_*301 31

PDF中的测量单位是,传统的图形工业测量单位.Adobe使用以下定义:

1 pt = 1/72 inch
Run Code Online (Sandbox Code Playgroud)

由于一英寸被定义为正好25.4毫米(真的!),您可以使用公式将点从毫米转换为毫米

mm = pt*25.4 / 72
Run Code Online (Sandbox Code Playgroud)

顺便说一句,您的值(宽松地)转换为A4纸张尺寸210 x 297 mm.("松散地",有两个原因.第一:在公制系统中,x尺寸来自1平方米.点数基于(根据Adobe的用法)在英制系统中;因此,点和毫米之间的所有转换都是近似值.第二:A4的给定值(mm)也是四舍五入的.x相对和绝对大小是基于无理数.)

脚注

在对象流内,可以将测量单位缩放到其他位置.以上仅适用于顶级基础对象.

  • PDRectangle 源具有用于此计算的常量:POINTS_PER_INCH = 72;POINTS_PER_MM = 1 / (10 * 2.54f) * POINTS_PER_INCH,还有 A4、A5 等纸张尺寸 (2认同)

小智 5

DTP点中的坐标定义为:1 pt = 1/72英寸= 25.4 / 72 mm

您可以编写这样的方法:

public float pt2mm(float pt) {
   return pt * 25.4f / 72;
}
Run Code Online (Sandbox Code Playgroud)