Как и большинство генераторов PDF (если не все), PDFKit использует точек, как указано в официальной документации в разделе Добавление страниц как PDF Points:
Свойство макета может быть книжным (по умолчанию) или альбомным. Свойство размера может быть либо массивом, указывающим [ширину, высоту] в пунктах PDF (72 на дюйм), либо строкой, указывающей предопределенный размер. Список предопределенных размеров бумаги можно увидеть здесь. По умолчанию буква.
...
Вы можете установить поля страницы двумя способами. Первый заключается в установке свойства поля (в единственном числе) на число, которое применяет это поле ко всем краям. Другой способ — установить свойство полей (во множественном числе) для объекта со значениями сверху, снизу, слева и справа. По умолчанию установлено поле шириной 1 дюйм (72 пункта) со всех сторон.
Эта единица применима не только при указании размеров макета, но и при использовании любого типа пронумерованной единицы для изменения сгенерированного PDF-файла. (например, текст рисунка, изображения, векторы и т. д. .)
Поскольку PDF является производным от PostScript, он также использует внутри ту же графическую модель, включая ту же базовую единицу измерения, что и PostScript, то есть баллы (72 points == 1 inch
). Эта единица измерения представляет собой независимый от устройства способ использования и указания размеров.
Вы не можете изменить единицу измерения PDFKit. Чтобы использовать другие единицы измерения, а не баллы, вы должны сами рассчитать единицу и умножить на коэффициент в соответствии с баллами. Поскольку вы не привязаны к целочисленным точкам, вы также можете использовать числа с плавающей запятой при указании точек (например, 100.15
).
Пример:
Если вы используете страницу размером A4 (то есть 8.27 × 11.69 inches
или 210 × 297 mm
), ее размеры округляются до 595 × 842 points
(сокращенно pt
):
1pt
is ~0.35mm
, or ~0.04cm
10pt
is ~3.53mm
, or ~0.35cm
100pt
is ~35.28mm
, or ~3.53cm
148.75pt
(ширина четверти страницы) равно ~52.48mm
или ~5.25cm
297.5pt
(половина ширины страницы) равно ~104.95mm
или ~10.50cm
Если вам нужны пиксели, вы также должны основывать свои расчеты на определенном DPI, поэтому размер в пикселях страницы формата A4 с:
72 DPI
is 595 x 842px
96 DPI
is 794 x 1123px
150 DPI
is 1240 x 1754px
300 DPI
is 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');
Вы можете найти таблицу размеров бумаги с соответствующими размерами в пунктах. a> Эта таблица применима к PDFKit и к большинству (если не к любому) генераторов PDF.
person
Rick
schedule
31.07.2018