9
votes

pour donner le travail d'impression directement à l'imprimante angulaire 6

En ce qui concerne les points de vente sur le Web (point de vente), rien ne vaut la nécessité d'imprimer la facture immédiatement, mais il n'y a pas beaucoup d'options sur la façon de commander l'imprimante directement à partir de la page Web, en particulier lorsque développer avec le framework Angular, j'ai cherché partout sur le web mais je n'ai rien trouvé.

Existe-t-il une bibliothèque tierce ou quelque chose pour atteindre mon objectif?


5 commentaires

Salut, juste pour clarifier. vous souhaitez imprimer à partir d'une application Web angulaire directement sur une imprimante sans aucune intervention de l'utilisateur? Pour réaliser l'impression via l'approche standard (avec interaction utilisateur et boîte de dialogue d'impression standard), j'ai trouvé les ressources suivantes d'intérêt: codepen.io/mil/pen/WRyzLa et medium.com/ @ Idan_Co / service-d'impression-angulaire-290651c721f9 . En plus de cela, vous pouvez trouver de nombreuses bibliothèques sur NPM pour imprimer (sélectivement) des éléments


Je veux que l'utilisateur clique sur le bouton d'impression. Cette action devrait imprimer ma page prédéfinie sans afficher d'aperçu ou quelque chose.


ceci: devrait imprimer ma page prédéfinie sans afficher d'aperçu n'est pas possible via JavaScript uniquement. Pensez à votre application angulaire comme s'il s'agissait d'un enregistrement audio. En lui-même, l'enregistrement ne peut produire aucun son. Il faut autre chose. Votre application Angular ne peut pas afficher ses itinéraires par elle-même, elle a besoin du navigateur. Votre application Angular ne peut pas s'imprimer, elle a besoin du navigateur. Le navigateur contrôle tous les aspects de la production de la sortie de votre application Angular (y compris l'impression). Votre application Angular n'a aucun contrôle sur cela. La boîte de dialogue d'impression peut être contournée via un paramètre de navigateur.


Il y a plus de 100 impressions imprimées en une seule journée dans mon entreprise. Cela prendra plus de 2 heures pour donner l'impression à partir de la boîte de dialogue. Il n'y a pas de bibliothèque tierce ou quelque chose à faire (pour imprimer silencieusement sur l'imprimante par défaut)? Sinon, pouvez-vous me suggérer une autre solution? @RandyCasburn


@Harshitkyal, avoir une telle bibliothèque ne résoudra pas votre problème. En fait, il n'est pas possible pour une application Web de connaître l'imprimante à laquelle l'ordinateur est lié. Chaque utilisateur devra définir ses préférences dans son navigateur. Rien de ce que vous pouvez faire depuis l'application.


3 Réponses :


4
votes

Comme d'autres l'ont déjà mentionné, il n'y a pas de solution simple et universelle à ce problème.

Les options que j'ai pu trouver entrent dans les 3 catégories suivantes:

  1. Paramètres spécifiques au navigateur

    Pour certains navigateurs (Firefox, Chrome), des paramètres spécifiques peuvent être activés / désactivés ou ajoutés pour une impression en mode silencieux et / ou kiosque. Comme ces paramètres sont si divers et dépendent parfois de la version du navigateur, je ne vais pas essayer de les lister ici. vous pouvez trouver les méthodes en ligne pour le navigateur que vous utilisez sous impression silencieuse.

  2. Plug-ins spécifiques au navigateur

    Certains plugins peuvent également être trouvés, mais ils pourraient simplement faire la même chose que de basculer les paramètres en arrière-plan en tant que numéro 1

  3. Personnalisé

    Une option très spécifique / impliquée / pratique que j'ai trouvée est de travailler service avec des gestionnaires de type url / fichier personnalisés. vous pouvez trouver la vidéo ici: https://www.youtube.com/watch?v=MQMD4Pb7jzY

Comme vous l'avez déjà mentionné. les choix ne sont pas optimaux, mais il y a peut-être quelque chose que vous pourriez trouver à partir de ceux-ci.


0 commentaires

0
votes

Comme j'ai compris que vous avez besoin d'une solution pour imprimer la page HTML, cette bibliothèque tierce ( ngx-print ) pourrait vous être utile.

Une fois que vous avez installé et importé le module NgxPrintModule , marquez votre section à imprimer avec un attribut id , puis associez cet id à un paramètre de directive dans votre bouton: (comme ceci)

<!--
   1)- Add an ID here
 -->
<div id="print-section"> 
  <!--Your html stuff that you want to print-->
</div>

 <!--
   2)- Add the directive name in your button (ngxPrint),
   3)- Affect your ID to printSectionId
 -->
<button printSectionId="print-section" ngxPrint>print</button> 

Cela vous aidera à imprimer la partie HTML directement à partir du code angulaire 7.


2 commentaires

Je veux donner l'impression à mon imprimante par défaut. Est-ce possible à partir de cela?


Salut @Harshitkyal, javascript ne peut pas contourner la fenêtre de confirmation d'impression du navigateur. C'est pour des raisons de sécurité. Sinon, n'importe quel site Web pourrait imprimer des éléments sur votre imprimante sans avertissement.



0
votes

J'ai pu réaliser l'impression au point de vente avec une application angulaire en contournant complètement le navigateur pour l'impression. J'ai configuré un Websocket auquel l'imprimante se connecte et écoute les nouveaux reçus à imprimer. Lorsqu'un nouveau reçu est effectué sur le site Web, le backend crée un nouveau reçu et l'envoie sur le Websocket.


3 commentaires

donc seul un type spécial d'imprimante qui a une connexion directe avec le backend ne peut le faire?


J'ai pu utiliser n'importe quelle imprimante mais je devais avoir un hôte spécial pour l'imprimante connectée au backend. Dans mon cas, j'ai utilisé un Raspberry Pi. Sinon, il n'y a aucun moyen de contourner la boîte de dialogue d'impression


Ouais je l'ai. Je l'ai regardé mais je ne l'ai pas utilisé pour un problème. J'utilisais une tablette et je voulais ne pas avoir de boîte de dialogue d'impression. Je suis sûr que vous pouvez utiliser une fonction serveur pour le déclencher sur l'imprimante. Je m'inquiète également du fait que les services Google gratuits comme l'impression dans le cloud seront un jour fermés. Je pense que l'impression dans le cloud n'est pas prise en charge à la fin de 2020