PDFKit Node.js度量单位

时间:2018-07-26 13:32:49

标签: javascript node.js printing pdfkit node-pdfkit

PDFKit(Node.js)中使用的度量单位是什么?例如,我们使用:

doc.text(20, 20, 'Message')

20(x)20(x)代表什么?是厘米,毫米,英寸吗?我可以将其更改为任何熟悉的格式,例如cmmminch吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

与大多数PDF生成器(如果没有) 一样,PDFKit也使用points部分中的官方文档中的Adding pages作为 PDF点。 strong>:

  

layout属性可以是纵向(默认)或横向。 size属性可以是指定[宽度,高度] 以PDF点为单位(每英寸72)的数组,也可以是指定预定义大小的字符串。可以在此处看到预定义纸张尺寸的列表。默认值为字母。

     

...

     

您可以通过两种方式设置页边距。第一种是通过将margin属性(单数)设置为一个数字,将该margin应用于所有边缘。另一种方法是将margins属性(复数)设置为具有top,bottom,left和right值的对象。 默认值为所有边距均为1英寸(72点)

此单位不仅在指定布局尺寸时适用,而且在使用任何类型的编号单位修改生成的PDF时也适用。 (例如,图形文字,图像,向量等)


由于PDF源自PostScript,因此它内部使用相同的图形模型,包括与PostScript相同的基本度量单位,即points ({{1} })。此度量单位是与设备无关的使用和说明尺寸的方式


您不能更改PDFKit的度量单位。为了使用其他单位而不是点,您必须计算自己的单位,并乘以根据点的系数 。由于您未绑定到整数点,因此在指定点时也可以使用浮点数(例如:72 points == 1 inch)。


示例:

如果使用尺寸为 A4 的页面(100.158.27 × 11.69 inches),其尺寸将四舍五入为210 × 297 mm({{1} }):

  • 595 × 842 pointspt1pt
  • ~0.35mm~0.04cm10pt
  • ~3.53mm~0.35cm100pt
  • ~35.28mm(四分之一页宽度)是~3.53cm148.75pt
  • ~52.48mm(半页宽度)是~5.25cm297.5pt

如果需要像素,则也必须以特定的 DPI 为基础,因此, A4 大小的页面的像素大小为:

  • ~104.95mm~10.50cm
  • 72 DPI595 x 842px
  • 96 DPI794 x 1123px
  • 150 DPI1240 x 1754px

对于初学者来说,这是一个简单的脚本,列出了转换成您提到的点后的基本单位及其值:

300 DPI

You can find a table of paper sizes with corresponding dimensions in points.此表也适用于PDFKit和大多数(如果没有) PDF生成器。