PDFKit(Node.js)中使用的测量单位是什么?例如,我们使用:
doc.text(20, 20, 'Message')
< p > 20(x)和20(x)代表什么?是厘米、毫米还是英寸?我能改成像cm、mm或者inch这样更熟悉的格式吗? < /p >
< p > 有什么想法吗?< /p >PDFKit(Node.js)中使用的测量单位是什么?例如,我们使用:
doc.text(20, 20, 'Message')
< p > 20(x)和20(x)代表什么?是厘米、毫米还是英寸?我能改成像cm、mm或者inch这样更熟悉的格式吗? < /p >
< p > 有什么想法吗?< /p >由于PDF源自PostScript,因此它在内部也使用相同的图形模型,包括与PostScript相同的基本测量单位点(72个点== 1英寸
)。这个测量单位是设备无关的使用和说明尺寸的方式。
你无法更改PDFKit的测量单位。如果要使用除点之外的其他单位,则必须自己计算单位并按照点数乘以因子。由于不限于整数点,因此在指定点时也可以使用小数(例如:100.15)。
如果您使用一个A4纸张(尺寸为8.27 × 11.69英寸
或210 × 297毫米
),其尺寸将被舍入为595 × 842点
(简写为pt
):
1pt
约为0.35毫米
或0.04厘米
10pt
约为3.53毫米
或0.35厘米
100pt
约为35.28毫米
或3.53厘米
148.75pt
(四分之一页宽)约为52.48毫米
或5.25厘米
297.5pt
(半页宽)约为104.95毫米
或10.50厘米
如果您需要像素,还必须根据特定的DPI进行计算,因此A4纸张的像素大小为:
72 DPI
是 595 x 842px
96 DPI
是 794 x 1123px
150 DPI
是 1240 x 1754px
300 DPI
是 2480 x 3508px
首先,这是一个简单的脚本列表,列出了基本单位及其值,在转换为您提到的点后:
function mmToPt (mm) {
return mm * 2.83465;
}
function cmToPt (cm) {
return cm * 28.3465;
}
function inchToPt (inch) {
return inch * 72;
}
const units = [
1,
2,
3,
5,
10,
15,
20,
25,
50,
100,
150,
250,
500,
1000
];
function convert (unit) {
let name;
let converter;
switch (unit) {
case 'mm':
name = 'millimeters';
converter = mmToPt;
break;
case 'cm':
name = 'centimeters';
converter = cmToPt;
break;
case 'inch':
name = 'inches';
converter = inchToPt;
break;
}
console.log(`Convert ${name} to points:`);
units.forEach(u => {
let converted = converter(u).toFixed(2);
// get rid of unneeded .00 decimals
if (+converted === parseInt(converted, 10)) {
converted = +converted;
}
console.log(`${u}${unit} is ${converted}pt, so in doc.text(${converted}, ${converted}, 'Message')`);
});
console.log('--------------------------------------------');
}
convert('mm');
convert('cm');
convert('inch');
您可以在点数中找到相应的纸张尺寸表。此表适用于PDFKit以及大多数PDF生成器(如果不是所有的话)。