电子:如何在pdf中打印所有html内容

时间:2019-03-08 14:53:49

标签: javascript node.js pdf electron

我正在使用Electron作为我的第一个项目,我必须从html打印PDF文件。

我的代码现在是什么:

    ipc.on('print-to-pdf', event => {
      const pdfPath = path.join(os.tmpdir(), 'temp_pdf.pdf')

      const win = BrowserWindow.fromWebContents(event.sender)

      win.webContents.printToPDF({marginsType: 1, pageSize:'Tabloid'}, (error, data) => {
        if (error) return console.log(error.message)

        fs.writeFile(pdfPath, data, err => {
          if (err) return console.log(err.message)
          shell.openExternal('file://' + pdfPath)
        })
      })
    })

but when my app create .pdf file, the content is sliced in the second page.
Like that:
[Error pdf][1]
maybe it depends on the setting of the page size:

    win.webContents.printToPDF({marginsType: 1, pageSize:'Tabloid'}, (error, data) => {
        if (error) return console.log(error.message)

我该如何解决?

[1]:https://i.stack.imgur.com/dJ6tT.png

1 个答案:

答案 0 :(得分:0)

我解决了将其添加到CSS中的问题:

@media print {
  body {
    overflow: visible !important;
  }
}

现在pdf完整了,可以显示所有页面