'use strict'; /** * tools/manual/print_pdf.js: wandelt handbuch.html in eine A4-PDF um (mit Kopf-/Fußzeile, Lesezeichen aus den Überschriften). * electron tools/manual/print_pdf.js [cover.html cover.pdf] */ const { app, BrowserWindow } = require('electron'); const fs = require('fs'); const path = require('path'); const src = path.resolve(process.argv[2]); const dst = path.resolve(process.argv[3]); app.whenReady().then(async () => { const win = new BrowserWindow({ show: false, width: 1000, height: 1400, webPreferences: { offscreen: false } }); await win.loadFile(src); await new Promise((r) => setTimeout(r, 1500)); const pdf = await win.webContents.printToPDF({ pageSize: 'A4', printBackground: true, preferCSSPageSize: true, displayHeaderFooter: true, headerTemplate: '
', footerTemplate: '
DeskHub Handbuch · alle Beispieldaten sind erfundenSeite von
', generateDocumentOutline: true, generateTaggedPDF: true, }); fs.writeFileSync(dst, pdf); if (process.argv[4]) { const w2 = new BrowserWindow({ show: false, width: 900, height: 1200 }); await w2.loadFile(path.resolve(process.argv[4])); await new Promise((r) => setTimeout(r, 500)); fs.writeFileSync(path.resolve(process.argv[5]), await w2.webContents.printToPDF({ pageSize: 'A4', printBackground: true, preferCSSPageSize: true })); } console.log('PDF geschrieben: ' + dst + ' (' + Math.round(pdf.length / 1024) + ' KB)'); app.quit(); });