3

I am using a JS function in my POS website which is:

<script type="text/javascript">
function printlayer(layer){
  var generator=window.open(",'name,");
  var layertext=document.getElementById(layer);
  generator.document.write(layertext.innerHTML.replace('Print Me'));
  generator.document.close();
  generator.print();
  generator.close();
}

When I click on Print button, it opens a new Print tab on screen but I want to print directly. Suppose I clicked on print, it should print directly. "IT SHOULD NOT OPEN THE PRINT TAB". I am using Thermal Receipt Printer: GPrinter Modal is: GP80160II Paper width: 80mm Print Speed: 160mm/sec.

This Picture is before clicking Print: enter image description here

This Picture is After clicking (That I don't want): enter image description here Please Help me. I am not able to do this. Thanks in advance

Kami
  • 43
  • 1
  • 1
  • 6
  • You are calling `window.open()`. If you want to print directly, don't do that. Just call `print()`. If necessary, hide everything you don't want to print, for instance by using @media rules. –  Jan 26 '19 at 07:44
  • @ChrisG I tried `.print` also, but there are some issues. It shows popup print screen – Kami Jan 26 '19 at 07:49
  • @ChrisG see my question now. I Added Pictures now. – Kami Jan 26 '19 at 07:58
  • I created a PHP app for a friend to print A4 invoices; the key is to use CSS like `width: 19cm` so the screen document translates 1:1 to paper. –  Jan 26 '19 at 08:00
  • That is how chrome works and how any other browser would. You can't do anything about it – Ikhlak S. Jan 26 '19 at 08:03
  • Oh, I see, you're asking how to skip the print dialog? You can't. –  Jan 26 '19 at 08:05
  • @ChrisG there is no way to do this or any other method ??? – Kami Jan 26 '19 at 08:08
  • No, however PHP can directly print to a printer on the server. So if this is for a local or intranet app, you could print directly on a printer connected to the server. –  Jan 26 '19 at 08:12
  • But PHP don't accept the URDU language... I want receipt in urdu – Kami Jan 26 '19 at 08:16

1 Answers1

3

If you are using IE browser then this can be achieved. But in firefox and chrome we can't bypass the dialogue box. You can avoid the print dialog from any application by using some cloud printing REST API.

Select a printer and silently print(SO)

https://developers.google.com/cloud-print/docs/appInterfaces

https://www.printnode.com/docs/api/curl/

Pallamolla Sai
  • 2,337
  • 1
  • 13
  • 14