Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tayso

Impressão direta em duas impressoras.

Recommended Posts

Boa tarde,

 

Estou precisando fazer a impressão direta em duas ou em uma impressora especifico.

 

Atualmente eu utilizo esse script para fazer a impressão direta.

 

<SCRIPT language='VBScript'>
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
</SCRIPT>
Funciona perfeitamente ele imprime na impressora padrão, porem eu preciso que faça a impressão em uma segunda impressora instalada.
Ex:
generic 1 = caixa
generic 2 = bar
generic 3 = cozinha
Precisava imprimir na generic 2 ou na generic 3, ou seja de acordo com a necessidade fazer a impressão.
Já procurei activex, applets e nada deu certo, alguem tem alguma ideia que possa me ajudar, alguem ja passou por uma situação assim.
Obrigado
Alguem tem alguma ideia,

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta assim, pode-se criar dois arquivos para imprimir em duas impressoras distintas

'  Script para impressão de documentos

	'  Modificado por Rafael Zottesso

	'  ******************************

	' Cria a variável para definir a impressora padrão

	Set objPrinter = CreateObject("WScript.Network")

	' Para impressora da rede utilize "\servidorNome da Impressora"

	objPrinter.SetDefaultPrinter "Nome da Impressora"

	' Define o diretório

	TargetFolder = "C:UserszOttEssODesktoptestelog"

	Set objShell = CreateObject("Shell.Application")

	Set objFolder = objShell.Namespace(TargetFolder)

	' Lista os arquivos

	Set colItems = objFolder.Items

	For Each objItem in colItems

	' Imprime os arquivos encontrados

	objItem.InvokeVerbEx("Print")

	Next

	' Define-se a impressora padrão após 5 segundos

	Wscript.Sleep 5000

	Set oldPrinter = CreateObject("WScript.Network")

	oldPrinter.SetDefaultPrinter "Nome da Impressora Padrão Antiga"
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara deu certo, porem o arquivo txt criado perde toda a configuração da impressora.

 

Tentei criando arquivo txt, doc e nada, quando eu crio o arquivo html ele respeita a formatação porem ele abre a tela opção de impressao para o usuario veja como ta o codigo abaixo.

 

Function FormatDate(inputDate)
Dim arrDate : arrDate = Split(inputDate, "/")
If Len(arrDate(0)) = 1 Then arrDate(0) = "0" & arrDate(0)
If Len(arrDate(1)) = 1 Then arrDate(1) = "0" & arrDate(1)
FormatDate = arrDate(0) & arrDate(1) & arrDate(2) 'MMDDYYYY
End Function
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Dim fileName : fileName = "A:\Prints\OutputFile-" & FormatDate(Date) & ".htm"
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile(fileName, ForWriting, True)
objFile.WriteLine "<STYLE>"
objFile.WriteLine "@page {"
objFile.WriteLine "size: 8.5in 11in;"
objFile.WriteLine "margin-left: 0cm;"
objFile.WriteLine "margin-right: 0cm;"
objFile.WriteLine "}"
objFile.WriteLine "</STYLE>"
objFile.WriteLine "<BODY leftmargin='0' topmargin='0' rightmargin='0'>"
objFile.WriteLine "<div class='linha'>"
objFile.WriteLine "------------------------------------------------<BR>"
objFile.WriteLine "IMPRESSAO BAR<BR>"
objFile.WriteLine "------------------------------------------------<BR>"
objFile.WriteLine "DATA: <%=FORMATDATETIME(NOW(),2)%> - <%=FORMATDATETIME(NOW(),3)%><BR>"
objFile.WriteLine "------------------------------------------------<BR>"
objFile.WriteLine "GARCON: <%=garcon%><BR>"
objFile.WriteLine "MESA N: <%=mesa%><BR>"
objFile.WriteLine "CODIGO: <%=codprod%><BR>"
objFile.WriteLine "PRODUTO: <%=produto%><BR>"
objFile.WriteLine "QTD: <%=qtd%><BR>"
objFile.WriteLine "------------------------------------------------<BR>"
objFile.WriteLine "</div>"
objFile.WriteLine "</BODY>"
objFile.Close
// Script para impressão de documentos
// Modificado por Rafael Zottesso
// ******************************
// Cria a variável para definir a impressora padrão
Set objPrinter = CreateObject("WScript.Network")
// Para impressora da rede utilize "\servidorNome da Impressora"
objPrinter.SetDefaultPrinter "MP4000TH"
// Define o diretório
TargetFolder = "A:\Prints"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
// Lista os arquivos
Set colItems = objFolder.Items
For Each objItem in colItems
// Imprime os arquivos encontrados
objItem.InvokeVerbEx("Print")
Next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver obrigado pela ajuda cara.

 

Se alguém precisar vou deixar a solução.

 

 

No meu caso eu precisava identificar se a impressão seria na impressora da A ou B

 

id = request("id")
tipo = request("tipo")
codprod = request("codprod")
produto = request("produto")
qtd = request("qtd")
garcon = request("garcon")
mesa = request("mesa")
select case tipo
case "C" %>
<script type="text/vbscript">
strPrinterName = "Cozinha"
Set objPrinter = CreateObject("WScript.Network")
objPrinter.SetDefaultPrinter strPrinterName
</script><%
case "B"%>
<script type="text/vbscript">
strPrinterName = "Bar"
Set objPrinter = CreateObject("WScript.Network")
objPrinter.SetDefaultPrinter strPrinterName
</script><%
end select
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
//crio o arquivo para a impressão em csv, foi o unico que gerou o arquivo e manteve a formatação
Dim fileName : fileName = "A:\Prints\Print_"&impre&".csv"
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile(fileName, ForWriting, True)
objFile.WriteLine "----------------------------------------------------------------------------------"
objFile.WriteLine "DATA: <%=FORMATDATETIME(NOW(),2)%> - <%=FORMATDATETIME(NOW(),3)%>"
objFile.Close
//imprime o arquivo
TargetFolder = "A:\Prints"
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(TargetFolder)
Set colItems = objFolder.Items
For Each objItem in colItems
objItem.InvokeVerbEx("Print")
Next
//deleto o arquivo
Set fso=CreateObject("Scripting.FileSystemObject")
For Each file In fso.GetFolder(TargetFolder).Files
file.delete
Next

 

 

Obrigado e espero que possa ajudar quem precise.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.