node.js html-pdf получить ошибку ENOTDIR при вызове pdfToFile

Я использую html-pdf в электронном виде для создания pdf из html.

Это сработало, когда я тестировал "npm run start". Я могу получить pdf.

Но когда я упаковываю электронное приложение в файл .dmg с помощью электронного компоновщика,

Я получил ошибку "spawn ENOTDIR" при вызове pdf.create()

var pdf = require('html-pdf');
var options = { format: 'Letter' };
//resultFilePath = /Users/myname/Documents/result.pdf
pdf.create(htmlContent, options).toFile(resultFilePath, function(err, res) 
{
}

отладчик javascript с сообщением об ошибке

Я понятия не имею сейчас. У кого-нибудь есть такая же проблема?

Любая помощь будет принята с благодарностью.


person Wu Baiquan    schedule 15.03.2018    source источник


Ответы (2)


У html-pdf могут возникнуть проблемы с поиском фантомного двоичного файла после его упаковки. Если бинарник не упакован, его можно найти (по крайней мере, на моей машине) в node_modules/phantomjs-prebuilt/bin/phantomjs

Попробуйте явно указать местоположение двоичного файла phantomJS с помощью параметра html-pdf.

> var pdf = require('html-pdf'); 
> var options = { format: 'Letter', phantomPath: '/path/to/phantomJSbinary' };
> //resultFilePath = /Users/myname/Documents/result.pdf
> pdf.create(htmlContent, options).toFile(resultFilePath, function(err,
> res)  { }

Вам также может понадобиться настроить options.script так, чтобы он указывал на копию pdf_a4_portrait.js из модуля html-pdf.

У других людей была похожая проблема. См. https://discuss.atom.io/t/asar-limitations-on-node-api-spawn-a-child/28235/2

person Tom    schedule 21.03.2018

Для тех, кто сталкивается с проблемой при печати в электронном виде.

Открыть содержимое печати в видимых окнах - хорошее решение, я последовал ответу дзен в Как распечатать DIV в ElectronJS

Хорошо работает на Windows и MacOS.

person Wu Baiquan    schedule 06.04.2018