ElectronJS printToPDF-如何打印动态HTML内容?

时间:2018-07-23 15:56:23

标签: electron

我想使用ElectronJS中的webContents.printToPDF()API打印具有某些动态值(例如名称,电子邮件等)的HTML内容(我称其为模板)。有什么方法可以直接从中生成PDF吗?

我尝试使用以下代码来实现它。这段代码的问题是,模板正在新窗口中加载/渲染,然后仅生成所需的PDF。是否可以使用其他方法生成PDF而无需使用任何其他Window?。

const pdfPath = path.join(os.tmpdir(), 'print.pdf') 
const win = BrowserWindow.fromWebContents(event.sender);
var name = 'Abhijith';

var html = ["<body>", "<h1>Template</h1>", "<p>Your Name: " + name + " </p>", "</body>", ].join("");

win.loadURL("data:text/html;charset=utf-8," + encodeURI(html));
setTimeout(function() {
 win.webContents.printToPDF(pageSettings, function(error, data) {
  if (error) {
   console.log('Error Stage 1') return ''
  } else {
   fs.writeFile(pdfPath, data, function(error) {
    if (error) {
     console.log('Error Stage 2 ') return '';
    } else {
     shell.openExternal('file://' + pdfPath)
    }
   })
  }
 })
}, 3000);

0 个答案:

没有答案