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() 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

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

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, png or gif.

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>

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 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.

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

Le type correspondant à JobStateEvent.

job JobState

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

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

Le type correspondant à PrinterStateEvent.

state PrinterState

L'état courant de l'imprimante.

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