new·The score now tells you which way it movedA brain's exam only ever grows: its own material writes questions, and so does every question a real caller asked and did not get answered. The score is a percentage over that growing set, so a brain that learned more could post a smaller number — and this week three did. One of them answered two MORE questions than the week before and showed eighteen points less. Printed as a single percentage, that reads as decline to a reader and as punishment to anyone who contributes material.all news →
mozg.beta
Sign in

Electron · API · all subjects

web-contents/printing

8 notes, read out of this brain and free to use. Each one was extracted from a source and is re-checked against its exam.

contents.getPrintersAsync() - get system printers

Gets the system printer list. Returns Promise<PrinterInfo[]> - resolves with a PrinterInfo array.

contents.print(options, callback) - print web page

Prints the window's web page. When silent is set to true, Electron will pick the system's default printer if deviceName is empty and use the default settings for printing. Parameters: options (Object, optional) with silent (boolean, optional, defaults to false) - don't ask user for print settings, printBackground (boolean, optional, defaults to false) - prints the background color and image of the web page, deviceName (string, optional) - set the printer device name to use (must be the system-defined name), color (boolean, optional, defaults to true) - set whether the printed web page will be in color or grayscale, margins (Object, optional) with marginType (string, optional, can be 'default', 'none', 'printableArea', or 'custom'; if 'custom' is chosen, specify top, bottom, left, and right), top (number, optional) - the top margin in pixels, bottom (number, optional) - the bottom margin in pixels, left (number, optional) - the left margin in pixels, right (number, optional) - the right margin in pixels, landscape (boolean, optional, defaults to false) - whether the web page should be printed in landscape mode, scaleFactor (number, optional) - the scale factor of the web page, pagesPerSheet (number, optional) - the number of pages to print per page sheet, collate (boolean, optional) - whether the web page should be collated, copies (number, optional) - the number of copies of the web page to print, pageRanges (Object[], optional) - the page range to print (on macOS, only one range is honored) with from (number) - index of the first page to print (0-based) and to (number) - index of the last page to print (inclusive, 0-based), duplexMode (string, optional) - set the duplex mode (can be 'simplex', 'shortEdge', or 'longEdge'), dpi (Record<string, number>, optional) with horizontal (number, optional) - the horizontal dpi and vertical (number, optional) - the vertical dpi, header (string, optional) - string to be printed as page header, footer (string, optional) - string to be printed as page footer, pageSize (string or Size, optional) - specify page size (can be 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'Legal', 'Letter', 'Tabloid' or an Object containing height and width), usePrinterDefaultPageSize (boolean, optional, defaults to false) - whether to use a given printer's default page size; cannot be combined with pageSize. callback (Function, optional) with success (boolean) - indicates success of the print call and failureReason (string) - error description if the print fails.

print() page size validation

When a custom pageSize is passed, Chromium attempts to validate platform specific minimum values for width_microns and height_microns. Width and height must both be minimum 353 microns but may be higher on some operating systems. If a valid pageSize is not passed and usePrinterDefaultPageSize is false, an error will be thrown.

print() failure reasons

Possible failureReasons for print failure include: 'Invalid printer settings', 'Print job canceled', 'Print job failed'.

print() page break CSS

Use 'page-break-before: always;' CSS style to force printing to a new page.

print() example

const win = new BrowserWindow() const options = { silent: true, deviceName: 'My-Printer', pageRanges: [{ from: 0, to: 1 }] } win.webContents.print(options, (success, errorType) => { if (!success) console.log(errorType) })

contents.printToPDF(options) - print to PDF

Prints the window's web page as PDF. Returns Promise<Buffer> - resolves with the generated PDF data. Parameters: options (PrintToPDFOptions). The landscape option will be ignored if @page CSS at-rule is used in the web page.

printToPDF() example

const { app, BrowserWindow } = require('electron') const fs = require('node:fs') const os = require('node:os') const path = require('node:path') app.whenReady().then(() => { const win = new BrowserWindow() win.loadURL('https://github.com') win.webContents.on('did-finish-load', () => { // Use default printing options const pdfPath = path.join(os.homedir(), 'Desktop', 'temp.pdf') win.webContents.printToPDF({}).then(data => { fs.writeFile(pdfPath, data, (error) => { if (error) throw error console.log(`Wrote PDF successfully to ${pdfPath}`) }) }).catch(error => { console.log(`Failed to write PDF to ${pdfPath}: `, error) }) }) })

Give your agent this brain