Cette réponse montre comment activer l'impression silencieuse dans Google Chrome. Cependant, j'ai deux pages Web qui doivent être imprimées en mode silencieux à l'aide de deux imprimantes différentes sans autre interaction de l'utilisateur. Est-il possible de sélectionner automatiquement une imprimante avant d'appeler window.print()
? Cela ne me dérange pas d’écrire une extension Chrome si cela est vraiment nécessaire.
Vous pourriez peut-être configurer vos imprimantes avec Google Clound Print, puis utiliser l’API d’impression en nuage pour leur soumettre des travaux en mode silencieux. Il semble que vous puissiez spécifier l'ID de l'imprimante lorsque vous soumettez le travail. Vous devrez peut-être utiliser quelque chose comme html2canvas pour pixelliser la page Web.
Si vous êtes dans un environnement que vous connaissez et dans lequel vous avez suffisamment de privilèges (je suppose, puisque vous connaissez l'imprimante que vous souhaitez utiliser), vous pouvez essayer de le modifier via la ligne de commande. Pour cela, vous devriez appeler
@RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name"
Le nom de l'imprimante doit être la valeur affichée sur le panneau de commande.
Pour appeler en ligne de commande à partir de javascript, si vous avez activé les contrôles ActiveX appropriés, vous pouvez utiliser:
var run=new ActiveXObject('WSCRIPT.Shell').Run("commands to run");
aussi, vous pouvez essayer avec Shell.application ShellExecute
var objShell = new ActiveXObject("Shell.application");
objShell.ShellExecute("cmd.exe", 'RunDLL32.EXE printui.dll,PrintUIEntry /y /n "Printer name"', "C:\\WINDOWS\\system32", "open", 1);
Pour plus d'informations, consultez http://msdn.Microsoft.com/en-us/library/windows/desktop/gg537745(v=vs.85).aspx
Je ne l'ai pas testé, alors bonne chance!
J'ai fini par écrire un serveur en fa # et communiquer avec cela via un WebSocket.
J'ai cherché une réponse mais il semble qu'il n'y ait aucun moyen de configurer une imprimante par programme. Par conséquent ma solution probablement compliquée:
Créez une application de ligne de commande capable de basculer l'imprimante par défaut du système d'exploitation. Peut-être une application capable de désactiver et d'activer une imprimante. Si vous êtes sous Windows, une application .NET pourrait probablement le faire. Si sous Linux, il devrait y avoir une interface en ligne de commande pour la gestion des imprimantes (je ne sais pas avec certitude).
Maintenant, créez par exemple une page PHP, asp.net ou Ruby, etc., capable d'appeler le programme d'activation/désactivation de l'imprimante.
Si cela fonctionne, vous pouvez utiliser les appels Javascript pour imprimer d’abord sur l’imprimante 1 et ensuite sur l’imprimante 2. Cependant il y a quelques inconvénients:
J'espère pour vous que quelqu'un propose une meilleure solution, mais je voulais au moins partager mes pensées. Peut-être qu'ils vous aident à résoudre votre problème.