diff --git a/package.json b/package.json index 8679b6c1..98a3a64a 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "nodemon": "^1.14.7", "nunjucks": "^3.1.0", "octicons": "^7.2.0", + "os": "^0.1.1", "passport": "^0.4.0", "passport-jwt": "^4.0.0", "popper.js": "^1.12.9", diff --git a/ui/components/Print/PrintView.vue b/ui/components/Print/PrintView.vue index 67a4c7a9..dcb7e25a 100644 --- a/ui/components/Print/PrintView.vue +++ b/ui/components/Print/PrintView.vue @@ -39,83 +39,31 @@ export default { }, getPDF() { - // const win = BrowserWindow.fromWebContents() - const win = remote.getCurrentWindow(); - const filePath = '/Users/prateekshasingh/Desktop/test'; - const extension = '.pdf'; - const data = this.printTemplate; - const type = 'pdf'; + // Open a hidden window + let printWindow = new remote.BrowserWindow( + // { show: false } + ); - let mindow = new remote.BrowserWindow({ - width: 800, - height: 600, - center: true, - resizable: true, - frame: true, - transparent: false, - }); - mindow.setMenu(null); + printWindow.loadURL( + "data:text/html;charset=utf-8," + encodeURI(this.printTemplate) + ); - // create BrowserWindow with dynamic HTML content - var html = [ - "", - "", - "

It works

", - "", - ].join(""); - mindow.loadURL("data:text/html;charset=utf-8," + encodeURI(this.printTemplate)); - - mindow.openDevTools(); - mindow.on("closed", function() { - mindow = null; + printWindow.on("closed", () => { + printWindow = null; }); - const writeFile = (pathname, content, extension) => { - if (!pathname) { - const errMsg = '[ERROR] Cannot save file without path.' - return Promise.reject(errMsg) - } - pathname = !extension || pathname.endsWith(extension) ? pathname : `${pathname}${extension}` + // const pdfPath = path.join(os.tmpdir(), 'print.pdf') + const pdfPath = '/Users/prateekshasingh/Desktop/print.pdf'; - console.log(content); - return fse.outputFile(pathname, content, 'utf-8') - } - - win.webContents.printToPDF({ printBackground: false }, (err, data) => { - if (err) log(err) - else { - writeFile(filePath, data, extension) - .then(() => { - win.webContents.send('AGANI::export-success', { type, filePath }) - }) - // .catch(log) - } - }) - - printPDFBtn.addEventListener('click', (event) => { - ipcRenderer.send('print-to-pdf') - }) - - ipcRenderer.on('wrote-pdf', (event, path) => { - const message = `Wrote PDF to: ${path}` - document.getElementById('pdf-path').innerHTML = message - }) - - ipcMain.on('print-to-pdf', (event) => { - const pdfPath = path.join(os.tmpdir(), 'print.pdf') - const win = BrowserWindow.fromWebContents(event.sender) - // Use default printing options - win.webContents.printToPDF({}, (error, data) => { - if (error) throw error - fs.writeFile(pdfPath, data, (error) => { - if (error) throw error - shell.openExternal(`file://${pdfPath}`) - event.sender.send('wrote-pdf', pdfPath) - }) + // Use default printing options + printWindow.webContents.printToPDF({}, (error, data) => { + if (error) throw error; + // printWindow.close(); + fs.writeFile(pdfPath, data, (error) => { + if (error) throw error; + shell.openExternal(`file://${pdfPath}`); }) - }) - - // await getPDFClient(this.doctype, this.name); + }); } } } @@ -134,6 +82,4 @@ export default { box-shadow: 0rem 0rem 0.5rem rgba(0,0,0,0.2); } -.print-view {} - diff --git a/yarn.lock b/yarn.lock index 164de767..3e05f50e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1451,14 +1451,6 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-6.0.1.tgz#8abc128f7946e310135ddc93b98bddb410e7a34b" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^4.0.0" - universalify "^0.1.0" - fs-minipass@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.5.tgz#06c277218454ec288df77ada54a03b8702aacb9d" @@ -2853,6 +2845,10 @@ os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +os@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/os/-/os-0.1.1.tgz#208845e89e193ad4d971474b93947736a56d13f3" + osenv@0, osenv@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644"