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().
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
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.<Printer~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.<Printer~JobState>>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
getJobState(job) → {Promise.<(Printer~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.<(Printer~JobState|null)>
-
Une promesse rejetée avec une valeur de type ErrorStatus.
- Type
- Promise.<ErrorStatus>
getState() → {Promise.<Printer~PrinterState>|Promise.<ErrorStatus>}
Obtenir l'état de l'imprimante.
Valeur de retour:
-
Une promesse résolue avec une valeur de type PrinterState.
- Type
- Promise.<Printer~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>
Définition des types
JobState
Un objet JobState donne 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 donne 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.
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 l'API window.addEventListener() définie par la spécification DOM.
Type:
Exemple
window.addEventListener('idal-printer-event', 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é.
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 l'API window.addEventListener() définie par la spécification DOM.
Type:
Exemple
window.addEventListener('idal-printer-event', function(e) {
if (e.detail.type == 'printer-state') {
// Do something useful...
console.log("Printer is connected: " + e.detail.state.connected);
}
});