L'interface de contrôle Printer permet d'interagir avec l'imprimante (Star TSP100).
Cette API est asynchrone et utilise Promise.
Pour utiliser cette API, vous devez dans un premier temps obtenir l'interface de contrôle Printer
à l'aide de IDAL.getControlInterfaces() ou IDAL.getRemoteControlInterfaces().
Il est possible d'imprimer :
- une image située sur un serveur HTTP ou HTTPS.
- le contenu d'un canvas HTML, ce qui peut être utilisé pour générer dynamiquement du contenu.
Méthodes
addListener(listener): Promise.<boolean>
Attacher un gestionnaire d'événements à l'interface de contrôle Printer.
- Depuis :
- micrologiciel v1.08 / SDK version 1.1.0
Cette methode est apparue avec le micrologiciel v1.08 pour rendre possible l'execution
d'un même code aussi bien sur le lecteur vidéo que sur un navigateur distant par l'utilisation de IDAL.getRemoteControlInterfaces().
Lorsque l'exécution se fait sur le lecteur vidéo, cette méthode equivaut à l'appel window.addEventListener('idal-printer-event', function(e) {})
.
Exemple
var printer = ... // Obtention de l'interface Printer
printer.addListener(function(event) {
// Ici la valeur de event.type est toujours 'idal-printer-event'
switch (event.detail.type) {
case 'printer-state':
console.log("Connexion de l'imprimante : " + event.detail.state.connected);
break;
case 'job-state':
var job = event.detail.job;
console.log("Changement d'état du job " + job.id);
console.log("Nouvel état : " + job.state);
break;
// etc...
}
});
Paramètres
Nom | Type | Description |
---|---|---|
listener |
Listener | Fonction à exécuter lorsqu'un événement relatif à impression survient. |
Valeur de retour
Une promesse résolue avec une valeur de type boolean
.
- Type
- Promise.<boolean>
cancelAllJobs(): Promise.<boolean> | Promise.<ErrorStatus>
Annuler tous les travaux d'impressions actuellement dans la file d'impression.
Valeur de retour
-
Une promesse résolue avec une valeur de type
boolean
.- Type
- Promise.<boolean>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
cancelJob(job): Promise.<boolean> | Promise.<ErrorStatus>
Annuler un travail d'impression.
Paramètres
Nom | Type | Description |
---|---|---|
job |
number | Un identifiant de travail d'impression tel que reçu via getAllJobStates() ou print() |
Valeur de retour
-
Une promesse résolue avec une valeur de type
boolean
. La promesse est résolue avec true si le travail a été annulé, false sinon (travail non existant).- Type
- Promise.<boolean>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
getAllJobStates(): Promise.<Array.<JobState>> | Promise.<ErrorStatus>
Obtenir l'état de tous les travaux d'impression.
Valeur de retour
-
Une promesse résolue avec un tableau de JobState.
- Type
- Promise.<Array.<JobState>>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
getJobState(job): Promise.<(JobState|null)> | Promise.<ErrorStatus>
Obtenir l'état d'un travail d'impression.
L'état d'un travail n'est disponible que lorsqu'il se trouve dans la file d'attente d'impression.
Paramètres
Nom | Type | Description |
---|---|---|
job |
number | Un identifiant de travail d'impression. |
Valeur de retour
-
Une promesse résolue avec une valeur de type JobState ou null lorsque le travail n'existe pas.
- Type
- Promise.<(JobState|null)>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
getState(): Promise.<PrinterState> | Promise.<ErrorStatus>
Obtenir l'état de l'imprimante.
Valeur de retour
-
Une promesse résolue avec une valeur de type PrinterState.
- Type
- Promise.<PrinterState>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
print(parameters): Promise.<number> | Promise.<ErrorStatus>
Imprime une image.
Il est possible d'imprimer une image référencée par une URL (HTTP ou HTTPS) ou
une image encodée dans une data uri (tel que défini par RFC 2397).
Cette dernière méthode permet d'imprimer le contenu d'un canvas HTML
(voir HTMLCanvasElement.toDataURL()).
Les images sont redimensionnées pour utiliser la largeur du papier. Pour obtenir la meilleur qualité d'impression, c'est à dire sans redimensionnement, la largeur de l'image doit être :
- 406px pour du papier 58mm (2 pouces).
- 576px pour du papier 80mm (3 pouces).
Paramètres
Nom | Type | Description | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
parameters |
Object |
Propriétés
|
Valeur de retour
-
Une promesse résolue avec une valeur de type job identifier.
- Type
- Promise.<number>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
removeListener(listener): Promise.<boolean>
Détacher un gestionnaire d'événements précédemment attaché à l'interface Printer.
- Depuis :
- micrologiciel v1.08 / SDK version 1.1.0
Paramètres
Nom | Type | Description |
---|---|---|
listener |
Listener | Fonction précédemment attachée avec addListener() |
Valeur de retour
Une promesse résolue avec une valeur de type boolean
.
- Type
- Promise.<boolean>
Définition des types
JobState
Un objet JobState contient l'état d'un travail d'impression.
Propriétés
Nom | Type | Attributs | Description |
---|---|---|---|
id |
number | L'identifiant du travail d'impression. |
|
state |
'queued' | 'fetching' | 'printing' | 'printed' | 'failed' | 'canceled' | 'finished' | 'unknown' | L'état actuel du travail d'impression. |
|
message |
string |
<optionnel> |
Un message humainement lisible décrivant l'état. |
Il est possible d'obtenir l'état d'un travail d'impression en utilisant Printer.getJobState(), Printer.getAllJobStates() ou JobStateEvent
PrinterState
L'objet PrinterState contient l'état de l'imprimante.
Propriétés
Nom | Type | Attributs | Description |
---|---|---|---|
connected |
boolean | Indique si l'imprimante est connectée ou déconnectée. |
|
online |
boolean |
<optionnel> |
Indique si l'imprimante est en ligne (en mesure d'imprimer). Présent seulement lorsque |
paper |
'ready' | 'near-empty' | 'empty' | 'unknown' |
<optionnel> |
Indique si le papier de reçu est disponible. Présent seulement lorsque |
cover |
'open' | 'closed' | 'unknown' |
<optionnel> |
Indique l'état du couvercle de l'imprimante. Seulement disponible lorsque |
Il est possible d'obtenir l'état de l'imprimante en utilisant Printer.getState() ou PrinterStateEvent.
Événements
JobStateEvent
Cet événement est envoyé lorsque l'état d'un travail d'impression évolue.
- Tutoriels :
Propriétés
Nom | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
type |
'idal-printer-event' | Type correspondant à l'ensemble des événements relatifs à l'impression. |
|||||||||
detail |
Object |
Propriétés
|
Cet événement doit être enregistré en utilisant Printer.addListener().
Il peut aussi être enregistré via window.addEventListener('idal-printer-event', callback) définie par la spécification DOM.
Si vous prévoyez d'utiliser une interface de contrôle à distance, cette dernière méthode doit absolument être évitée.
Type
Exemple
// Methode préférée: utilisation de Printer.addListener()
var printer = ... // Obtention de l'interface Printer
printer.addListener(function(e) {
if (e.detail.type == 'job-state') {
// Do something useful...
console.log("Job " + e.detail.job.id + ": " + e.detail.job.state);
}
});
PrinterStateEvent
Cet événement est envoyé lorsque l'état de l'imprimante évolue ou périodiquement (quelques minutes) lorsqu'aucun changement d'état n'est constaté.
- Tutoriels :
Propriétés
Nom | Type | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
type |
'idal-printer-event' | Type correspondant à l'ensemble des événements relatifs à l'impression. |
|||||||||
detail |
Object |
Propriétés
|
Cet événement doit être enregistré en utilisant Printer.addListener().
Il peut aussi être enregistré via window.addEventListener('idal-printer-event', callback) définie par la spécification DOM.
Si vous prévoyez d'utiliser une interface de contrôle à distance, cette dernière méthode doit absolument être évitée.
Type
Exemple
// Methode préférée: utilisation de Printer.addListener()
var printer = ... // Obtention de l'interface Printer
printer.addListener(function(e) {
if (e.detail.type == 'printer-state') {
// Do something useful...
console.log("Printer is connected: " + e.detail.state.connected);
}
});