Référence API JavaScript
Important
La plateforme d’impression moderne est le moyen privilégié de Windows pour communiquer avec les imprimantes. Nous vous recommandons d’utiliser le pilote de classe IPP en boîte de Microsoft, ainsi que les applications de support d’impression (PSA), pour personnaliser l’expérience d’impression dans Windows 10 et 11 pour le développement de périphériques d’impression.
Pour plus d’informations, veuillez consulter la section Plateforme d’impression moderne et le Guide de conception des applications de support d’impression.
Les fabricants peuvent utiliser l’API JavaScript présentée ici, en combinaison avec un fichier XML Bidi, pour fournir une prise en charge de Bidi sur une connexion USB à un périphérique d’impression.
Pour plus d’informations sur la communication Bidi USB avec un périphérique d’impression, veuillez consulter la section USB Bidi Extender.
Bidi sur USB
méthode getSchemas
Cette méthode gère les requêtes Bidi GET telles que \Printer.Consumables.YellowInk:Level. Le code JavaScript est capable de faire des requêtes à l’imprimante en utilisant le bus USB et de lire les réponses à mesure qu’elles reviennent.
syntaxe
function getSchemas(scriptContext, printerStream, schemaRequests, printerBidiSchemaResponses);
Paramètres (méthode getSchemas)
scriptContext [in] Un objet IPrinterScriptContext qui fournit l’accès aux groupes de propriétés pertinents. printerStream
[in] Un objet IPrinterScriptableSequentialStream qui permet un accès en lecture et en écriture au bus USB. schemaRequests
[in] Objet tableau contenant toutes les chaînes de requêtes Bidi demandées. printerBidiSchemaResponses
[out] Objet que le script utilise pour stocker toutes les réponses aux clés de requête.
Valeurs de retour (méthode getSchemas)
Valeur retournée | Description |
---|---|
0 | Le script s’est terminé avec succès. |
1 | Le périphérique connecté n’était pas prêt à fournir certaines informations demandées. Indique que le système d’impression doit rappeler la fonction en utilisant les clés de requête ajoutées lors du traitement. |
méthode setSchema
Cette méthode gère les opérations Bidi SET. Le script peut déterminer la valeur du schéma Bidi entrant pour soit définir des données dans le périphérique, soit effectuer une action sur le périphérique comme nettoyer les têtes d’encre.
Si le périphérique n’est pas prêt à traiter les données spécifiées, la méthode peut retourner une valeur de 1 pour indiquer que l’appel doit être réessayé après une période d’attente.
Paramètres (méthode setSchema)
scriptContext [in] Un objet IPrinterScriptContext qui fournit l’accès aux groupes de propriétés pertinents. printerStream
[in] Un objet IPrinterScriptableSequentialStream qui permet un accès en lecture et en écriture au bus USB. printerBidiSchemaElement
[in] Un objet IPrinterBidiSchemaElement qui contient toutes les données associées à la valeur du schéma Bidi à définir.
Valeurs de retour (méthode setSchema)
Valeur retournée | Description |
---|---|
0 | Le script s’est terminé avec succès. |
1 | Le périphérique connecté n’était pas prêt à fournir certaines informations demandées. Indique que le système d’impression doit rappeler la fonction en utilisant l’élément printerBidiSchemaElement fourni. |
méthode getStatus
Cette méthode est utilisée pour obtenir le statut non sollicité d’une imprimante pendant que le périphérique est en cours d’impression. Cette fonction est appelée uniquement pendant l’impression. Le périphérique doit fournir des données sur le canal de lecture que ce script peut interpréter en valeurs de schéma Bidi. Comme le canal d’écriture vers le périphérique est bloqué par les données d’impression, seul le statut non sollicité est pris en charge ici.
Cette méthode est appelée à plusieurs reprises pendant l’impression. Il est attendu que le périphérique ne retourne des données que si elles sont disponibles et que le script peut les comprendre. Si le périphérique ne prend pas en charge le statut non sollicité ou qu’il n’est pas nécessaire de rappeler cette fonction, le script doit retourner une valeur de 2 qui indiquera au thread d’exécution getStatus dans USBMon de se terminer avec succès.
Paramètres (méthode getStatus)
scriptContext [in] Un objet IPrinterScriptContext qui fournit l’accès aux groupes de propriétés pertinents. printerStream
[in] Un objet IPrinterScriptableSequentialStream qui permet un accès en lecture au bus USB. printerBidiSchemaResponses
[out] Objet que le script utilise pour stocker toutes les réponses aux clés de requête.
Valeurs de retour (méthode getStatus)
Valeur retournée | Description |
---|---|
0 | Le script s’est terminé avec succès. |
2 | Le périphérique connecté ne prend plus en charge le statut non sollicité et cette fonction ne doit plus être appelée. |
méthode startPrintJob
USBMon appelle cette méthode pendant StartDocPort. Appeler startPrintJob permet au pilote de modifier le flux d’impression ou de mettre en œuvre un protocole de demande/réponse basé sur l’hôte qui est utilisé pendant que le périphérique d’impression imprime un travail. L’objet de contexte de travail est transmis à la fonction pour permettre au code JavaScript du fabricant de gérer les propriétés du travail et d’accéder aux flux de données persistants. Les données d’impression sont transmises sous forme de tableau JavaScript pour que le code JavaScript les traite. startPrintJob fournit également un accès au périphérique d’impression de la manière suivante :
Via le flux d’impression
Via un objet qui peut renvoyer des réponses de schéma Bidi pour USBMon à traiter
Syntaxe (méthode startPrintJob)
function startPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Paramètres (méthode startPrintJob)
jobScriptContext [in] Un objet IPrinterScriptUsbJobContext qui donne au code JavaScript du fabricant un accès au groupe de propriétés du travail et au(x) flux de données persistant(s). printerStream
[in] Un objet IPrinterScriptableSequentialStream, que le code JavaScript du fabricant peut utiliser pour lire et écrire des données vers le périphérique d’impression. printerBidiSchemaResponses
[out] Un objet IPrinterBidiSchemaResponses que le code JavaScript du fabricant peut utiliser pour renvoyer toute modification/mise à jour de la valeur du schéma Bidi.
Valeurs de retour (méthode startPrintJob)
Valeur retournée | Description |
---|---|
0 | Opération réussie. |
1 | Échec : Nettoyez l’objet de contexte de travail et renvoyez un code d’erreur au spouleur d’impression. |
méthode writePrintData
USBMon appelle cette méthode pendant writePort. Appeler writePrintData permet au pilote de modifier le flux d’impression ou de mettre en œuvre un protocole de demande/réponse basé sur l’hôte qui est utilisé pendant que le périphérique d’impression imprime un travail. L’objet de contexte de travail est passé dans la méthode pour permettre au code JavaScript du fabricant de gérer les propriétés du travail et d’accéder aux flux de données persistants. Les données d’impression sont transmises sous forme de tableau JavaScript pour que le code JavaScript les traite. writePrintData fournit également un accès au périphérique d’impression de la manière suivante :
Via le flux d’impression
Via un objet qui peut renvoyer des réponses de schéma Bidi pour USBMon à traiter
function writePrintData(jobScriptContext, writePrintDataProgress, printData, printerStream, printerBidiSchemaResponses);
Paramètres (méthode writePrintData)
jobScriptContext [in] Un objet IPrinterScriptUsbJobContext qui donne au code JavaScript du fabricant un accès au groupe de propriétés du travail et au(x) flux de données persistant(s). writePrintDataProgress
[in] Un objet IPrinterScriptableSequentialStream que le code JavaScript du fabricant peut utiliser pour lire et écrire des données vers le périphérique d’impression. printData
[in] Un objet IDispatch, un tableau JavaScript des données d’impression actuelles. Le paramètre printData permet au code JavaScript de manipuler les données avant de les mettre en cache dans l’un des flux de données dans jobScriptContext ou de les envoyer à l’imprimante via printerStream. printerStream
[in] Un objet IPrinterScriptableSequentialStream que le code JavaScript du fabricant peut utiliser pour lire et écrire des données vers le périphérique d’impression. printerBidiSchemaResponses
[out] Un objet IPrinterBidiSchemaResponses que le code JavaScript du fabricant peut utiliser pour renvoyer toute modification ou mise à jour des valeurs du schéma Bidi.
Valeurs de retour (méthode writePrintData)
Valeur retournée | Description |
---|---|
0 | Opération réussie. Le nombre d’octets traités à partir du flux de données d’impression (printData) est renvoyé via writePrintDataProgress. |
1 | Échec : Renvoyez un code d’erreur au spouleur d’impression. |
2 | Nouvel essai : Traitez toutes les mises à jour du schéma Bidi (y compris les événements Bidi) dans printerBidiSchemaResponses, puis rappelez la fonction JavaScript pour permettre au code du fabricant de continuer à traiter les données. Le nombre d’octets traités à partir du flux de données d’impression (printData) est renvoyé via writePrintDataProgress. |
3 | DeviceBusy : Le canal de communication du périphérique n’accepte pas les données pour le moment. Cela n’indique pas un échec. USBMon doit informer le spouleur que le périphérique est occupé, puis rappeler la fonction ultérieurement. Le nombre d’octets traités à partir du flux de données d’impression (printData) est renvoyé via writePrintDataProgress. |
4 | AbortTheJob : Le périphérique ne peut pas continuer à traiter le travail, ou l’utilisateur a annulé le travail en utilisant le panneau avant du périphérique d’impression. Lorsque USBMon reçoit le message pour annuler un travail d’impression, il transmet l’information au spouleur d’impression pour annuler le travail, avant de retourner. |
méthode endPrintJob
USBMon appelle cette méthode pendant endDocPort. Appeler endPrintJob permet au pilote de modifier le flux d’impression ou de mettre en œuvre un protocole de demande/réponse basé sur l’hôte qui est utilisé pendant que le périphérique d’impression imprime un travail. L’objet de contexte de travail est transmis à la méthode pour permettre au code JavaScript du fabricant de :
Terminer le traitement de toutes les données d’impression persistantes
Accéder au périphérique d’impression via le flux d’impression
Accéder à un objet qui peut transmettre des réponses de schéma Bidi pour USBMon à traiter
function endPrintJob(jobScriptContext, printerStream, printerBidiSchemaResponses);
Paramètres (méthode endPrintJob)
jobScriptContext [in] Un objet IPrinterScriptUsbJobContext qui donne au code JavaScript du fabricant un accès au groupe de propriétés du travail et au(x) flux de données persistant(s). printerStream
[in] Un objet IPrinterScriptableSequentialStream que le code JavaScript du fabricant peut utiliser pour lire et écrire des données vers le périphérique d’impression. printerBidiSchemaResponses
[out] Un objet IPrinterBidiSchemaResponses que le code JavaScript du fabricant peut utiliser pour renvoyer toute modification ou mise à jour des valeurs du schéma Bidi.
Valeurs de retour (méthode endPrintJob)
Valeur retournée | Description |
---|---|
0 | Succès : Nettoyez l’objet de contexte de travail et renvoyez le succès au spouleur d’impression. |
1 | Échec : Nettoyez l’objet de contexte de travail et renvoyez un code d’erreur au spouleur d’impression. |
2 | Nouvel essai : Traitez toutes les mises à jour du schéma Bidi (y compris les événements Bidi) dans printerBidiSchemaResponses, puis rappelez la fonction JavaScript pour permettre au code JavaScript du fabricant de continuer à traiter les données. |
Bidi sur USB secondaire
Si le périphérique prend en charge une interface USB secondaire, alors le périphérique peut utiliser les méthodes getSchemas et setSchema décrites dans les sections précédentes, en plus de la méthode requestStatus.
méthode requestStatus
Cette méthode est appelée au lieu de getStatus, si la directive BidiUSBStatusInterface a été spécifiée dans le fichier manifeste du pilote v4. requestStatus est utilisée pour obtenir le statut d’un périphérique d’impression pendant que le périphérique imprime.
Le schéma suivant fournit une vue d’ensemble de l’architecture de l’extension USB Bidi, montrant le scénario où la directive BidiUSBStatusInterface a été spécifiée et la communication est donc routée via une interface USB alternative.
Cette méthode est appelée à plusieurs reprises pendant l’impression. Il est attendu que le périphérique ne retourne des données que si elles sont disponibles et que le script peut les comprendre. Si le périphérique ne prend pas en charge le statut sollicité ou qu’il n’est pas nécessaire de rappeler cette méthode, le script doit retourner une valeur de 2 qui indiquera au thread d’exécution getStatus dans USBMon de se terminer avec succès.
Paramètres (méthode requestStatus)
scriptContext [in] Un objet IPrinterScriptContext qui fournit l’accès aux groupes de propriétés pertinents. printerStream
[in] Un objet IPrinterScriptableSequentialStream qui permet un accès en lecture et en écriture au bus USB. printerBidiSchemaResponses
[out] Objet que le script utilise pour stocker toutes les réponses aux clés de requête.
Valeurs de retour (méthode requestStatus)
Valeur retournée | Description |
---|---|
0 | Le script s’est terminé avec succès. |
2 | Le périphérique connecté ne prend plus en charge le statut sollicité et cette fonction ne doit plus être appelée. |