Imprimir sem janela de confirmação no Mozilla Firefox

Hoje eu estava com dificuldade em resolver este problema. O cliente queria que, ao inserir uma venda, imprimisse um comprovante sem ter que clicar em algum botão e, muito menos, confirmar a impressão naquela janela onde selecionamos a impressora.

  1. abra uma aba no firefox e digite: about:config
  2. clique com o botão direito e vá em Nova preferência > Boolean
  3. cole este código: print.always_print_silent
  4. na tela seguinte selecione True

Feito estes passos, toda vez que você receber uma impressão ela será enviada diretamente para a impressora. Aí surge outro problema: o Mozilla Firefox mantém como padrão a última impressora que você utilizou nele. Para resetar esta opção, ainda na aba about:config:

  1. procure a opção: print.print_printer
  2. clique com o botão direito e vá em Restaurar o padrão

Ainda não acabou! Na próxima impressão o Mozilla vai armazenar novamente a impressora utilizada. Para que ele sempre utilize a impressora que é padrão do seu computador:

  1. procure a opção: print.save_print_settings
  2. dê dois cliques com o botão esquerto do mouse para que altere seu valor para False
  3. a linha selecionada ficará em negrito

Bom, agora você não vai mais ver a janela de confirmação de impressão e o Mozilla Firefox sempre irá utilizar a impressora que está definida como padrão no seu computador. Se você alterar a impressora padrão não será necessário reiniciar o navegador para utiliza-lá.

Acessar um elemento da página principal estando dentro do iframe

Você possui a página principal (principal.html) e dentro possui um iframe (iframe.html).

Para pegar um elemento da página principal de dentro do iframe (iframe.html) usamos o seguinte código em javascript:

// Para pegar o valor de um elemento, ex: div, p, h1, entre outros
parent.document.getElementById('elemento').innerHTML;
// Para definir
parent.document.getElementById('elemento').innerHTML = 'Texto aqui =)';
// Para utilizar em formulário (input) troque o 'innerHTML' por 'value'

 

DBDesigner 4 não conecta com MySql: Invalid Username/Password

Se você está tendo seguinte erro:

“Connection to database failed

dbExpress Error: Invalid
Username/Password”

É provavelmente por causa da versão do MySQL que você está usando. O DBDesigner não suporta a versão 5, mas há uma maneira de fazê-lo aceitar.

Antes de começar, crie um novo usuário com todas as permisões (no menu Privilégios do phpMyadmin) para usarmos na sincronização. Se você mudar a senha do root vai ter problemas de conexão com seus sistemas/projetos.

Vá em Iniciar -> Executar -> cmd -> execute os comandos abaixo:

C:xamppmysqlbinmysql -h localhost -u root -p

Sua senha: (digite a senha, caso haja)

set password for usuarioNovo@localhost = old_password('senha nova');

É necessário alterar a senha para que a sincronização funcione.

 

Como executar arquivos de extensão .vbs (VBScript) no PHP

É possível executar arquivos com extensão .vbs no php.

Veja o código abaixo:

<?php 

/* Defina o caminho para o arquivo(s) */ 
$command = 'wscript.exe C:/Users/zOttEssO/Desktop/teste/testeImp01.vbs'; 
$command2 = 'wscript.exe C:/Users/zOttEssO/Desktop/teste/testeImp02.vbs'; 

// Executa os arquivos/comandos

$obj = new COM ( 'WScript.Shell' ); 

if ( is_object ( $obj ) ) 
{ 
    $obj->Run ( 'cmd /C ' . $command2, 0, FALSE ); 
    // Define um tempo de 3 segundos para executar o outro arquivo/comando
    sleep(3);
    $obj->Run ( 'cmd /C ' . $command, 0, FALSE ); 
} 
else 
{ 
    echo 'Não foi possível criar o objeto!'; 
} 

$obj = null;

Fonte: http://www.sitepoint.com/forums/showthread.php?505709-run-a-vbs-from-php

 

Imprimir vários arquivos em mais de uma impressora com VBScript

Tive uma dificuldade para encontrar/montar esta solução. Com o script a seguir é possível imprimir todos os arquivos de um determinado diretório na impressora que você escolher, sem que apareça a tela de impressão. Desta maneira, também pode-se criar dois arquivos para imprimir em duas impressoras distintas, exemplo: uma compra feita na praça de alimentação onde é impresso o ticket com a senha no atendimento e na cozinha o pedido.

Entenda algumas coisas antes:

  • É possível imprimir apenas na impressora padrão;
  • Você terá que achar uma solução para executar o VBScript (arquivo.vbs) no seu projeto;
  • Para executar o arquivo com o PHP, veja http://www.rafaelzottesso.com.br/?p=205

Como o script funciona:

  • É definida uma nova impressora padrão (a que se deseja imprimir os arquivos);
  • Todos os arquivos do diretório são enviados para esta impressora;
  • Por último define-se a impressora padrão antiga;

Crie um arquivo com a extensão .vbs e cole o seguinte conteúdo:

'  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"

Não tenho conhecimento em VBScript. Esta solução foi a que consegui para meu problema.