【问题标题】:HTML to PDF with Node.js and Electron.js使用 Node.js 和 Electron.js 将 HTML 转为 PDF
【发布时间】:2019-08-19 08:04:23
【问题描述】:

这里是相关代码。

        let Name = moment().unix() + ".pdf";
        var html = fs.readFileSync('./test/businesscard.html', 'utf8');
        let filename = "C:\\App\\Register\\pdf\\" + Name;
        pdf.create(html, options).toFile(filename, function (err, response) {
          if (err) {
             res.status(403).json({
               message: 'error'
             })
           } else {
              res.status(200).json({
               message: 'success'
             })

           }
    }

它在开发版本上运行良好并创建 PDF 文件。但是当我创建一个 electron build-pack,没有生成pdf文件。

如果有任何解决方案,那将是一个很大的帮助

【问题讨论】:

  • 控制台有什么错误吗?
  • No.. 我在开发版本上工作并生成 PDF 文件,但是当我运行 build-pack .exe 文件时,没有生成 PDF 文件,并且 build-pack 版本上没有任何控制台。
  • 如果在pdf.create() 行之后添加console.log(err, response) juste 会得到什么?
  • 控制台未在电子版本上运行。

标签: node.js reactjs pdf electron html-pdf


【解决方案1】:

您应该使用app.getAppPath() 为打包的应用程序使用绝对路径。

替换此行

var html = fs.readFileSync('./test/businesscard.html', 'utf8');

由此

var html = fs.readFileSync(path.join(app.getAppPath(), '/test/businesscard.html', 'utf8'));

别忘了加

const path = require('path')
const app = require('electron').remote.app

【讨论】:

  • 我已经尝试解决在 pdf.create(html, options) 之前将 html 放置在同一代码块中但仍然是相同的错误..
猜你喜欢
  • 2013-01-11
  • 2019-10-24
  • 1970-01-01
  • 1970-01-01
  • 2015-03-02
  • 1970-01-01
  • 1970-01-01
  • 2014-05-05
相关资源
最近更新 更多