add 'save pdf' button and print opens PDF

pull/432/head
Lex Neva 2019-04-18 10:15:13 -04:00
rodzic bf43633560
commit 09c46e0fb4
4 zmienionych plików z 20 dodań i 5 usunięć

Wyświetl plik

@ -1,4 +1,4 @@
import { app, BrowserWindow, ipcMain, dialog } from 'electron';
import { app, BrowserWindow, ipcMain, dialog, shell } from 'electron';
var fs = require('fs');
var path = require('path')
var tmp = require('tmp')
@ -43,11 +43,20 @@ app.on('window-all-closed', () => {
app.quit();
});
ipcMain.on('print', function (event, pageSize) {
ipcMain.on('save-pdf', function (event, pageSize) {
mainWindow.webContents.printToPDF({"pageSize": pageSize}, function(error, data) {
dialog.showSaveDialog(mainWindow, {"defaultPath": "inkstitch.pdf"}, function(filename, bookmark) {
if (typeof filename !== 'undefined')
fs.writeFileSync(filename, data, 'utf-8');
})
})
})
})
ipcMain.on('open-pdf', function (event, pageSize) {
mainWindow.webContents.printToPDF({"pageSize": pageSize}, function(error, data) {
tmp.file({keep: true, discardDescriptor: true}, function(err, path, fd, cleanupCallback) {
fs.writeFileSync(path, data, 'utf-8');
shell.openItem(path);
})
})
})

Wyświetl plik

@ -369,9 +369,14 @@ $(function() {
$('button.print').click(function() {
var pageSize = $('select#printing-size').find(':selected').text();
electron.ipcRenderer.send('print', pageSize)
electron.ipcRenderer.send('open-pdf', pageSize)
});
$('button.save-pdf').click(function() {
var pageSize = $('select#printing-size').find(':selected').text();
electron.ipcRenderer.send('save-pdf', pageSize)
});
$('button.settings').click(function(){
$('#settings-ui').show();
});

Wyświetl plik

@ -123,7 +123,7 @@ body {
color: white;
}
.ui button.print {
.ui button.print, .ui button.save-pdf {
border: 1px solid rgb(50,132,50);
}

Wyświetl plik

@ -2,6 +2,7 @@
<p class="header">{{ _('Ink/Stitch Print Preview') }}</p>
<div class="buttons">
<button class="print">{{ _('Print') }}</button>
<button class="save-pdf">{{ _('Save PDF') }}</button>
<button class="settings">{{ _('Settings') }}</button>
<button class="close">{{ _('Close') }}</button>
</div>