1

我在电子中使用 html-pdf 从 html 生成 pdf。

当我通过“npm run start”测试时它可以工作。我可以得到pdf。

但是当我通过电子构建器将电子应用程序打包到 .dmg 文件时,

调用 pdf.create() 时出现“spawn ENOTDIR”错误

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 调试器

我现在不知道。有没有人有同样的问题?

任何帮助将不胜感激。

4

2 回答 2

1

html-pdf 在打包后可能无法找到幻像二进制文件。未打包时,可以在(至少在我的机器上)找到二进制文件node_modules/phantomjs-prebuilt/bin/phantomjs

尝试通过 html-pdf 选项显式设置 phantomJS 二进制位置。

> 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.jshtml-pdf 模块的副本。

其他人也有类似的问题。见https://discuss.atom.io/t/asar-limitations-on-node-api-spawn-a-child/28235/2

于 2018-03-21T04:43:56.403 回答
-1

对于任何在电子打印时遇到问题的人。

在可见窗口中打开打印内容是一个很好的解决方案,我按照 Zen 在如何在 ElectronJS 中打印 DIV 中的回答

在 Windows 和 MacOS 上运行良好。

于 2018-04-06T14:55:21.960 回答