Printer

Printer

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:

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:

getState() → {Promise.<Printer~PrinterState>|Promise.<ErrorStatus>}

Obtenir l'état de l'imprimante.

Valeur de retour:

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
Nom Type Attributs Description
url string <optionnel>

L'URL de l'image (HTTP ou HTTPS), peut être du jpeg ou du png.

data string <optionnel>

Une image encodée dans une data URI (voir RFC 2397)

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 connected est vrai.

paper 'ready' | 'near-empty' | 'empty' | 'unknown' <optionnel>

Indique si le papier de reçu est disponible. Présent seulement lorsque connected est vrai.

cover 'open' | 'closed' | 'unknown' <optionnel>

Indique l'état du couvercle de l'imprimante. Seulement disponible lorsque connected est vrai.

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
Nom Type Description
type 'job-state'

Le type correspondant à JobStateEvent.

job Printer~JobState

L'état du travail d'impression ayant changé changé.

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
Nom Type Description
type 'printer-state'

Le type correspondant à PrinterStateEvent.

state Printer~PrinterState

L'état courant de l'imprimante.

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);
      }
});