Электрон: loadURL из буфера - PullRequest
0 голосов
/ 15 мая 2018

В моем рендере я могу создать событие для создания PDF.Однако перед записью на диск я хотел бы сначала открыть недавно созданный PDF в другом окне.Как я могу обойти запись в файловую систему и использовать data в качестве источника для loadURL?

Мой код:

ipcMain.on('view-pdf', (event, url) => {
  let pdf
  mainWindow.webContents.printToPDF({}, (error, data) => {
    if (error) throw error
    pdf = data
    // what's the magic here to make pdf work?
  })
  const pdfWindow = new BrowserWindow({
    width: 1024,
    height: 800,
    webPreferences: {
      plugins: true,
      webSecurity: false
    }
  })
  pdfWindow.loadURL(pdf)
})

1 Ответ

0 голосов
/ 15 мая 2018

Асинхронная природа Javascript - это зверь. Это работает как ожидалось:

ipcMain.on('view-pdf', (event, url) => {
  mainWindow.webContents.printToPDF({}, (error, data) => {
    if (error) throw error
    const pdf = data.toString('base64')
    const pdfWindow = new BrowserWindow({
      width: 1024,
      height: 800,
      webPreferences: {
        plugins: true,
        webSecurity: false
      }
    })
  pdfWindow.loadURL('data:application/pdf;base64,' + pdf)
  })
})

Код не идеален, но так он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...