AJUDA EM CAPTURA DE RELATORIOS
27/02/2021
0
atualmente sou Analista de suporte de minha empresa, nós prestamos serviços de outsourcing de impressão, ou seja alugamos e vendemos impressoras para quem precisar, reduzindo os custos operacionais e etc...
para faturar nós cobramos o aluguel dos equipamentos + a produção, ou seja produção = qtd de paginas impressas ou copiadas,
dai uma vez por mês eu retiro os relatorios de contabilização das maquinas, OKIDATA, eles são relatorios via web no próprio sistema das impressoras, por exemplo abaixo:
View Information
( To save this information page to your computer, select "Save" or Save as..." from your browser's file menu. Note: menus may differ depending on your browser. )
Information
Tray1 : A4
MP Tray : A4
Duplex : Installed
Memory : 512 MB
Count
Print Count
Tray1 : 103778
MP Tray : 62
Scan Count
Total Scanned Pages : 5986
Scanned Pages : 5986
Total Scanned Pages (ADF) : 5081
Scanned Pages (ADF) : 5081
Usage Report
27/02/2021 12:53
Serial Number : AK68029431
Asset Number :
Copy/Print Counter(Impressions)
Media Size Mono
A4 / Letter
Copies: 20677
Prints: 92842
Fax Received: 0
Total Impressions: 113519
Total A4/Letter Impressions: Mono:113519
Para abrir esse relatorio é bem simples, basta eu botar o IP da impressora no navegador + /printer/infotosave.htm > botar o login padrão da impressora > ai abre uma pagina web com essas informações acima,
oque eu queria é, como faria um sistema para capturar essa pagina web e armazenar em um pdf no pc ou servidor, isso de forma automatica,
tipo eu botaria em um campo, os endereços de ip + o login e senha, e ao apertar ele geraria varios pdf ou um só contendo essa pagina?
Virgilio Jr
Post mais votado
27/02/2021
Vc pode pegar dados de outra páina com esse comando aqui. Mas, precisa de entender a linguagem php.
<?php
// URL DO SITE
$url = 'http://www.horariodebrasilia.org/index.php'; // aqui seria a tua URL da impressora
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
$var1 = explode('<p id="relogio">',$dadosSite);
$var2 = explode("</p>",$var1[1]);
print "<h1><center>Horário de Brasília<br>
".$var2[0]."</center></h1>";
?>
Obs.: caso vc não tenha como fazer, posso fazer essa tarefa pra vc pro aqui mesmo. Vc combina.
Heraldo Araujo
Mais Posts
27/02/2021
Virgilio Jr
Eu até tenho um básico de Php, vou tentar aqui e vou informando, agradeço demais.
28/02/2021
Virgilio Jr
<?php // URL DO SITE $url = 'http://10.2.8.104/printer/infotosave.htm'; // aqui seria a tua URL da impressora // PEGANDO TODO CONTEUDO $dadosSite = file_get_contents($url); $var1 = explode('<p id="relogio">',$dadosSite); $var2 = explode("</p>",$var1[1]); print "<h1><center>Horário de Brasília<br> ".$var2[0]."</center></h1>"; ?>
tentei aqui, mas creio que fui com amadorismo, creio que precise de um parametro para botar o login e senha que o site pede, pois no index.php deu o seguinte erro:
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
2 0.0001 405016 file_get_contents ( ) ...\\index.php:7
( ! ) Notice: Undefined offset: 1 in C:\\wamp64\\www\\contador\\index.php on line 10
Call Stack
# Time Memory Function Location
1 0.0001 405016 ( ) ...\\index.php:0
acho que vou precisar de auxilio dos universitarios mesmo kkkk, agradeço a paciencia.
28/02/2021
Heraldo Araujo
Se não est´afazendo no http que vc está indicando, é pq o servidor deve estar fechado para internet. Veja isso com o suporte do servidor. Blz?
// esse código abaixo vai no site da Globo e printa todo conteúdo.
<?php
// URL DO SITE
$url = 'https://g1.globo.com/';
// PEGANDO TODO CONTEUDO
$dadosSite = file_get_contents($url);
//PRITANDO O CONTEÚDO DO SITE
echo "<pre>";
echo "<p>$dadosSite</p>";
echo "</pre>";
?>
28/02/2021
Virgilio Jr
como poderia fazer tendo em vista que as impressoras são acessadas pelo meu notebook via VPN, só apos conectar tenho acesso as impressoras,
qual o proximo passo que teria que ser feito?
o codigo php ser feito dentro do servidor? pois eu tenho liberdade total para executar lá.
28/02/2021
Heraldo Araujo
Por exemplo, para ver qual o IP do G1, teria que digitar no promt do WIN: "ping g1.globo.com -t" , ele responderá: "186.192.81.31" , jamais poderia começar por "10". Entendeu?
01/03/2021
Virgilio Jr
dai volto a tentar esse codigo ai.
01/03/2021
Heraldo Araujo
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
01/03/2021
Virgilio Jr
O que deve estar externo(ser enxergado pela internet para puder ser executado do seu browser) é o programa(pode ser php, java, asp) que irá enxergar a impressora. Esse programa, sim, tem que ter acesso aos aplicativos da impressora, ele, certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora. Exemplo, quando eu executo, aqui, da minha casa, um programa em php num servidor remoto, esse php pode acessar qquer coisa que o servidor permita lá na rede dele.
espero ter sido mais claro agora.
Nessa parte
"certamente, estará na mesma rede da impressora,ou nma rede que tenha acesso a essa impressora."
Então, eu tenho um acesso via VPN, após conectar nele eu já tenho acesso pelo browser das Impressoras,
Então creio que oque precisa ter nesse código pra funcionar seria uma variável de login e password
Vou testar abrir uma página que não precise de login na Impressora.
01/03/2021
Virgilio Jr
<?php // URL DO SITE $url = ''http://10.2.8.104''; // PEGANDO TODO CONTEUDO $dadosSite = file_get_contents($url); //PRITANDO O CONTEÚDO DO SITE echo "<pre>"; echo "<p>$dadosSite</p>"; echo "</pre>"; ?>
fiz um teste agora conectado direto na vpn, a pagina ficou toda em branco, mas parece que teve um avanço, pois o titulo do site ficou o nome da impressora, porém como falei tudo em branco,
tem algum codigo que eu ja deixe setado o login
user: admin
pw: aaaaaa
01/03/2021
Virgilio Jr
<?php // URL DO SITE $url = 'http://admin:aaaaaa@10.2.8.104/printer/infotosave.htm'; // PEGANDO TODO CONTEUDO $dadosSite = file_get_contents($url); //PRITANDO O CONTEÚDO DO SITE echo "<pre>"; echo "<p>$dadosSite</p>"; echo "</pre>"; ?>
da o seguinte erro:
Warning: file_get_contents(http://...@10.2.8.104/printer/infotosave.htm): failed to open stream: HTTP request failed! HTTP/1.1 401 Unauthorized in C:\\wamp64\\www\\contador\\index.php on line 7
03/03/2021
Virgilio Jr
espelhar a pagina de relatorio da minha impressora, segue o codigo abaixo:
<?php $curl = curl_init(); curl_setopt($curl,CURLOPT_URL,"http://10.2.8.104/printer/infotosave.htm"); $username = "admin"; $password = "aaaaaa"; curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password); curl_setopt($curl,CURLOPT_FOLLOWLOCATION,true); curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); $retorno = curl_exec($curl); print $retorno; ?>
minha intenção agora é botar todas as impressoras nessa tela, e gera um pdf com todos os dados presentes.
Clique aqui para fazer login e interagir na Comunidade :)