Est-il possible d'avoir une option d'impression qui contourne la boîte de dialogue d'impression?
Je travaille sur un système fermé et j'aimerais pouvoir prédéfinir les paramètres de la boîte de dialogue d'impression. et traiter l'impression dès que je clique sur le bouton.
D'après ce que je lis, la manière de procéder varie selon les navigateurs. Par exemple, IE utiliserait ActiveX. Chrome/Firefox nécessiterait des extensions. Sur cette base, il semble que je devrais écrire une application en C++ capable de gérer les paramètres passés par le navigateur pour une impression automatique avec un formatage approprié (pour les étiquettes). Ensuite, je devrai le réécrire sous forme d'extension pour Chrome/Firefox. Le résultat final étant que les utilisateurs de notre système fermé devront télécharger/installer ces fonctionnalités en fonction du navigateur utilisé.
J'espère qu'il y a une autre façon de s'y prendre, mais cette tâche viole probablement les problèmes de sécurité du navigateur.
J'ai fini par implémenter une application personnalisée qui fonctionne de manière très similaire à Nexus Mod Manager. J'ai écrit une application C # qui enregistre un schéma d'URI d'application personnalisé. Voici comment ça fonctionne:
Cette approche nécessitait un téléchargement initial de l'utilisateur et une seule invite de sécurité de Windows lors du premier lancement de l'application. J'ai également implémenté un peu de magie Javascript pour lui permettre de détecter si le travail d'impression était géré ou non. Si ce n'était pas le cas, il leur demande de télécharger l'application.
Je sais que c'est une réponse tardive, mais voici une solution que j'utilise. Je ne l'ai utilisé qu'avec IE et je ne l'ai pas testé avec un autre navigateur.
Ce coup d’impression secondaire remplace effectivement la fonction d’impression par défaut.
<script language='VBScript'>
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
Ensuite, utilisez la fenêtre Javascript.print (); est lié à un lien hypertexte ou à un bouton permettant d'exécuter la commande d'impression.
Si vous souhaitez imprimer automatiquement lors du chargement de la page, placez le code ci-dessous à côté de tag.
<script type="text/javascript">
window.onload=function(){self.print();}
</script>
J'ai trouvé un plugin génial par Firefox qui résout ce problème. try seamless printing plugin de firefox qui imprimera quelque chose à partir d’une application Web sans afficher de boîte de dialogue d’impression.
La réponse générale est: NON, vous ne pouvez pas le faire dans le cas général, mais dans certains cas, vous pourriez le faire. Vérifiez http://justtalkaboutweb.com/2008/05/09/javascript-print-bypass-printer-dialog-in-ie-and-firefox/
De toute façon, si vous étiez autorisé à le faire, il s'agirait d'un problème de sécurité puisqu'un script malveillant pourrait envoyer des travaux d'impression en mode silencieux à l'imprimante du visiteur.
J'écris cette réponse pour le navigateur Firefox.
Open File > Page Setup
Make all the headers and footers blank
Set the margins to 0 (zero)
In the address bar of Firefox, type about:config
Search for print.always_print_silent and double click it
Change it from false to true
This lets you skip the Print pop up box that comes up, as well as skipping the step where you have to click OK, automatically printing the right sized slip.
If print.always_print_silent does not come up
Right click on a blank area of the preference window
Select new > Boolean
Enter "print.always_print_silent" as the name (without quotes)
Click OK
Select true for the value
You may also want to check what is listed for print.print_printer
You may have to choose Generic/Text Only (or whatever your receipt printer might be named)