Javascript print без диалогового окна печати

Ниже снимок работает отлично, но он открывает окно диалогового окна,

но я не хочу открывать диалоговое окно печати,

просто печать должна выполняться без диалогового окна,

какой фрагмент я должен добавить в нижеприведенном фрагменте,

И еще одно сомнение: я хочу распечатать в принтере DOT Matrix, ниже будет работать фрагмент ниже?

var prtContent = document.getElementById(strid);
var WinPrint =
window.open('','','left=0,top=0');
WinPrint.document.write(prtContent.innerHTML);
WinPrint.document.close();
WinPrint.focus();
WinPrint.print();
WinPrint.close();
prtContent.innerHTML=strOldOne;

i разработало приложение для выставления счетов,

Если я показываю диалоговое окно печати, тогда он потребляет несколько секунд для печати, см., что у меня было больше принтера, У меня есть только один принтер, то есть матрица, когда когда-либо выдаю команду печати, тогда она должна печатать BILL без открытия диалогового окна печати,

Ответ 1

Это вполне возможно. Я работаю в банковской сфере и располагаю веб-страницей, которую следователи должны были распечатать, когда была отправлена ​​транзакция. Поскольку они делают транзакции весь день, это замедлит их, если бы каждый раз отображалось диалоговое окно. Этот код выберет принтер по умолчанию и распечатает его непосредственно без диалогового окна.

<form>
<input type="button" value="Print Page" onClick="window.print()">
</form>


<script language="VBScript">
// THIS VB SCRIP REMOVES THE PRINT DIALOG BOX AND PRINTS TO YOUR DEFAULT PRINTER
Sub window_onunload()
On Error Resume Next
Set WB = nothing
On Error Goto 0
End Sub

Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1


On Error Resume Next

If DA Then
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)

Else
call WB.IOleCommandTarget.Exec(OLECMDID_PRINT ,OLECMDEXECOPT_DONTPROMPTUSER,"","","")

End If

If Err.Number <> 0 Then
If DA Then 
Alert("Nothing Printed :" & err.number & " : " & err.description)
Else
HandleError()
End if
End If
On Error Goto 0
End Sub

If DA Then
wbvers="8856F961-340A-11D0-A96B-00C04FD705A2"
Else
wbvers="EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B"
End If

document.write "<object ID=""WB"" WIDTH=0 HEIGHT=0 CLASSID=""CLSID:"
document.write wbvers & """> </object>"
</script>

Ответ 2

Кажется, большинство людей сосредоточилось на негативных аспектах такой функции.

Да, в большинстве случаев нежелательно, чтобы веб-сайт мог подавить диалоговое окно.

Но в некоторых случаях, например, в этом примере, когда он пытается распечатать квитанцию ​​для своего бизнеса в браузере. Как я понимаю, в таком случае каждая секунда слишком драгоценна, чтобы быть потраченной впустую, подтверждая потенциально сотни поступлений в день.

Это бизнес в конце концов, где время - деньги!

Существует множество других случаев, когда вы хотели бы подавить диалоговое окно, например, продавцы eBay печатали свои ярлыки перед отправкой.

В идеале разработчик веб-сайта должен иметь возможность указать некоторые основные параметры, такие как имя принтера, цвет/монохроматичность, качество, размер бумаги. И командуйте печать целиком из исходного coude, не требуя никаких действий от пользователя, за исключением, конечно, для настройки этих параметров только один раз.

К сожалению, большинства браузеров пока нет, так как их разработчики еще не пробудили до полного потенциала размещения ВСЕХ ВИДОВ приложений в облаке, включая приложения, в которых используются принтеры, такие как ПО и программное обеспечение для печати этикеток! Кстати, вот большая ниша для программного обеспечения как сервиса!

Хорошей новостью является то, что уже можно добиться чего-то подобного в Firefox, где вы можете изменить настройки браузера, чтобы включить то, что они называли "Тихая печать", вы должны установить его "Всегда", и все будет хорошо.

Я уверен, что IE может также иметь какой-то способ сделать это, но я еще не нашел его.

Кто-нибудь знает, как состояние принтера и функции печати предлагаются другими основными браузерами, такими как Chrome и Opera?

Ответ 3

Это невозможно, и для этого есть несколько веских причин:

  • пользователь может выбрать сам принтер.
  • пользователь может захотеть иметь возможность контролировать, когда его принтер активируется (представьте себе неприятные всплывающие всплывающие окна с автоматической печатью, ARRGH!)
  • пользователь может указать параметры принтера (оттенки серого или цвет, разрешение, размер,...)

Ответ 4

Загрузите Google Chrome версии 18.xx.xx.xx и вы можете использовать флаги, чтобы отключить диалог принтера

- киоскового NOPRINT

Что-то в этом роде я не могу вспомнить с ног до головы, но Google поможет в этом. Это позволит диалогу оставаться в стороне, когда вы выбираете все, что хотите напечатать.

Ответ 5

Я думаю, что лучшим альтернативом будет Flash или Java....

Flash очень гибкий с точки зрения настройки элементов ОС....

http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/printing/PrintJob.html

Таким образом, пользователь может определить принтеры, которые он хочет распечатать, и вы можете просто передать имя принтера функции, и принтер начнет печать.....