printer
Extends NativeObject
Allows to print PDF documents or images from the device. A printer object is always available from tabris.printer.
Import this object with “const {printer} = require('tabris');”
Methods
print(data, options)
iOSAndroid
Parameters:
- data: any
- the bytes of the document to print. The value can either be an ArrayBuffer or a typed array containing the bytes of a PDF document or image.
- options: {jobName?: string, contentType?: string} [Optional]
- an optional set of configuration parameters. Setting the
jobNameallows to provide the document name shown the user. ThecontentTypeis required when printing a specific document format. By defaultapplication/pdfis used but it needs to be changed toimage/*when printing an image
- an optional set of configuration parameters. Setting the
Returns: *Promise
Prints a PDF document using the native printing capabilities of the device. The data has to be provided as an ArrayBuffer or typed array. The method returns a promise which resolves to an event object with the property result. The result can either be completed or canceled. When printing fails the promise is rejected with an Error parameter containing additional information about the error. Supported on iOS and Android 4.4+.
Example
const {Button, printer, ui, app} = require('tabris');
// Print a bundled PDF
new Button({
left: 16, right: 16, top: 16,
text: 'Print PDF'
}).on('select', () => print('resources/example.pdf', 'application/pdf', 'Example PDF'))
.appendTo(ui.contentView);
new Button({
left: 16, right: 16, top: 'prev() 16',
text: 'Print Image'
}).on('select', () => print('resources/salad.jpg', 'image/jpg', 'Salad image'))
.appendTo(ui.contentView);
function print(file, contentType, jobName) {
fetch(app.getResourceLocation(file))
.then(res => res.arrayBuffer())
.then(data => printer.print(data, {jobName: jobName, contentType: contentType}))
.then(event => console.log('Printing finished', event))
.catch(err => console.error(err));
}