Rhaone 0 Denunciar post Postado Março 11, 2009 Função de abrir impressora no PHP Depurando o meu script, a linha a seguir está causando problema, como se o script tivesse uma sintaxe incorreta (a tela fica escura): $handle = printer_open ("Texto");1) Em c:\php\ext já está a dll "php_printer.dll" 2) Em c:\windows\php.ini já está configurado: ... extension_dir = c:/PHP/ext ... extension=php_printer.dll ... [Printer] ;printer.default_printer = ""Grato! Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 11, 2009 já utilizou alguma vez função printer ? printer_open é usado para abrir a impressora e não pra inserir um texto.. Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 11, 2009 já utilizou alguma vez função printer ? printer_open é usado para abrir a impressora e não pra inserir um texto.. Sim, é exatamente abrir a impressora que eu quero. Na sequência tem outros comandos de impressão, mas que não chegam a ser executados pois o script pára neste ponto da abertura da mesma. "Texto" é o nome da minha impressora Genérica que criei para testes, ou seja, para imprimir em arquivo, mas que não vem ao caso pois já utilizei também "printer_open ()" para pegar a impressora padrão. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 11, 2009 defina o nome de compartilhamento da impressora printer_open("nome da impressora") nao confunda o nome da impressora com o nome de compartilhamento outra forma de chamar é especificando o caminho físico, conforme está descrito no manual Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 12, 2009 defina o nome de compartilhamento da impressora printer_open("nome da impressora") nao confunda o nome da impressora com o nome de compartilhamento outra forma de chamar é especificando o caminho físico, conforme está descrito no manual Segui a tua sugestão e ainda não deu. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 12, 2009 ok. 1. a impressora está no mesmo PC que está executando o script PHP ? 2. poderia mostrar o script que tentou usar no teste ? Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 13, 2009 Aqui está o script até a linha que não funcionou: <?php $tb_link = mysql_query ("SELECT * FROM `$database`.`$tb_depend` ORDER BY Depend"); if (!$tb_link) { echo "<script>alert ('#122=Não foi possível acessar o banco de dados!');</script>"; exit (); } $data_sys = getdate (); $ano_sys = str_pad ($data_sys ['year'], 4, "0", STR_PAD_LEFT); $mes_sys = str_pad ($data_sys ['mon'], 2, "0", STR_PAD_LEFT); $dia_sys = str_pad ($data_sys ['mday'], 2, "0", STR_PAD_LEFT); $hor_sys = str_pad ($data_sys ['hours'], 2, "0", STR_PAD_LEFT); $min_sys = str_pad ($data_sys ['minutes'], 2, "0", STR_PAD_LEFT); $sec_sys = str_pad ($data_sys ['seconds'], 2, "0", STR_PAD_LEFT); $data_sys = $dia_sys . "/" . $mes_sys . "/" . $ano_sys . " - " . $hor_sys . ":" . $min_sys . ":" . $sec_sys; $crlf = chr (13) . chr (10); $handle = printer_open ("Texto"); Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 13, 2009 1. a impressora generica está funcionando ? 2. error report e error display do php estão ativados ? 3. ao chamar a função printer_open() qual o valor retornado para $handle ? o valor é RESOURCE ou BOOLEAN ? Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 15, 2009 1. a impressora generica está funcionando ? 2. error report e error display do php estão ativados ? 3. ao chamar a função printer_open() qual o valor retornado para $handle ? o valor é RESOURCE ou BOOLEAN ? 1. Sim, funciona. 2a. error_reporting = E_ALL (tava assim) 2b. display_errors = On (tava off) 3. Esta função não chega a funcionar. É nela que o script pára e agora com display_errors em on aparece a mensagem: "Fatal error: Call to undefined function printer_open() in (meu script) on line XX" Depois disso ativei o "display_startup_errors = On" e houve esta mensagem: "PHP Startup: Unable to load dynamic library 'H:/PHP/ext\php_printer.dll' - Não foi possível encontrar o múdlo especificado." Verifiquei e está lá sim! E também está ativado o "extension=php_printer.dll". Uso PHP-5.2-win32. Procurei no Google um download do dll para a minha versão e funcionou: http://kromann.info/php5_2-Release_TS/php_printer.dll Agora estou usando para teste este script: <?php $handle = printer_open(); printer_write($handle, "Text to print"); printer_close($handle); ?>... e não imprime nada e a impressora não dá sinal de vida. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 15, 2009 ok. pule para o passo 5, caso tenha algum problema reveja os passos de 1 à 4 1. não é recomendável usar arquivos de procedência duvidosa (não quer dizer que o site de onde fez o download da dll seja suspeito de algo) 2. PHP Startup: Unable to load dynamic library 'H:/PHP/ext\php_printer.dll' - Não foi possível encontrar o múdlo especificado." Verifiquei e está lá sim veja como está o caminho do arquivo: H:/PHP/ext\php_printer.dll a nomenclatura possui barra invertida e barra normal.. conserte isso. 3. como está definido, no php.ini, a diretiva "extension_dir" ? nessa diretiva deve conter, no seu caso, o valor H:/PHP/ext Volte a dll original e conserte os caminhos definidos no php.ini 4. importante O php, desde a versão 5.2.6 não alterou os pacotes PECL Atualmente, o PHP está na versão 5.2.9-1, porém, o PECL continua sendo da versão 5.2.6 5. ao executar $handle = printer_open(); o valor atribuído à variável $handle é do tipo RESOURCE ou do tipo BOOLEAN ? 6. é recomendável especificar o nome de compartilhamento da impressora, pois ao chamar a função "printer_open()", o driver tentará enviar um spooler para a impressora definida como padrão do sistema operacional. Em muitas vezes, a detecção pode ser falha, por isso, assegure-se da funcionalidade especificando o nome. 7. você está usando uma impressora genéria, portanto, a impressão será salva num arquivo com extensão .xps já procurou ver qual o local onde está configurado para salvar os arquivos xps ? obs: por padrão, o XPS Viewer não abre automaticamente o arquivo gerado opós o término do spooler Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 15, 2009 1. Ciente. 2. Por padrão utilizo "/", mas como deu este problema tentei com "H:\PHP\ext" e não funcionou também. 3. extension_dir = H:/PHP/ext 4. Ciente. 5. Resource id #6 6. Ciente. 7. Não mais. Agora estou utilizando "$handle = printer_open ("HP Photosmart C4200 series");" para minimizar os problemas nos testes. Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 16, 2009 ok. depois de tantas mudanças, novamente algumas perguntas para confirmar 1. A library printer está sendo carregada pelo PHP ? o que mostra phpinfo() ? 2. o teste com a impressora "HP Photosmart C4200 series" funcionou ? Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 16, 2009 1. ... Printer Support = enabled Default printing device = HP Photosmart C4200 series Module state = working RCS Version = $Id: printer.c,v 1.34 2007/01/31 05:08:46 fmk Exp $ Directive = printer.default_printer Local Value = no value Master Value = no value 2. Não.[/font] Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Março 17, 2009 a impressora está compartilhada ? Compartilhar este post Link para o post Compartilhar em outros sites
Rhaone 0 Denunciar post Postado Março 17, 2009 a impressora está compartilhada ?Não. Compartilhar este post Link para o post Compartilhar em outros sites