Мой код выглядит следующим образом:
function pdfSettings(h, w) {
var MICRONS_PER_IN = 25400;
var option = {
landscape: false,
marginsType: 0,
printBackground: true,
printSelectionOnly: false,
pageSize:{width:(w * MICRONS_PER_IN), height:(h * MICRONS_PER_IN)},
};
return option;
}
и
win.webContents.printToPDF(pdfSettings('8.25','5.375'), function(err, data) {
fs.writeFile('/Users/me/.myapp/test.pdf', data, function (error) {
if (err) {
return console.log(err.message);
}
else {
console.log("shouldn't be here");
console.log(data.length);
}
});
});
Это создает новый файл PDF с правильными размерами, но пустой.
win
- это новый объект окна браузера, который был открыт, и я могу видеть его содержимое. Я подозреваю, что это какая-то проблема, связанная с тем, что содержимое окна браузера еще не доступно, но помещение этого события в готовое событие, похоже, ничего не делает или даже вообще предотвращает его запуск.
Длина данных (и размер файла pdf) всегда составляет 661 байт независимо от содержимого окна браузера. Вероятно, минимальный размер шаблона PDF или что-то.
Моя альтернативная стратегия использования wkhtmltopdf нежизнеспособна (некоторые функции css3 недоступны), поэтому я должен заставить эту работу работать.