AJUDA EM CAPTURA DE RELATORIOS

JavaScript

PHP

27/02/2021

Bom dia senhores, sou novo no forum como podem percerber hehheehe

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

Virgilio Jr

Curtidas 0

Melhor post

Heraldo Araujo

Heraldo Araujo

27/02/2021

Olá, Virgílio


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.


GOSTEI 1

Mais Respostas

Virgilio Jr

Virgilio Jr

27/02/2021

Opa , vou testar mano, vou fazer os teste.
Eu até tenho um básico de Php, vou tentar aqui e vou informando, agradeço demais.
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

<?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:

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
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.
GOSTEI 0
Heraldo Araujo

Heraldo Araujo

27/02/2021

Veja, esse outro teste, abaixo(teste você também), vai lá no site da REDE GLOBO(que é uma página muito maior que a do teu caso) e printa todo conteudo - reconstruindo a página no browser.
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>";

?>
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

é realmente testei aqui com esse ai que ta o link do G1 e funcionou,
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á.
GOSTEI 0
Heraldo Araujo

Heraldo Araujo

27/02/2021

O que tá acontecendo é que o IP que vc tem é para endereço de intranet - endereço interno. Vc tem que pegar o IP da internet, Mano. Tipo, da um comando no prompt do win assim: "ping nome_do_host -t" que vc verá o IP correto.

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?
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

Então o primeiro passo antes disso é tornar as impressoras "externas", pois o unico ip dela disponivel é o interno/local, vou fazer com o admin do server para vê se é possível isso.
dai volto a tentar esse codigo ai.
GOSTEI 0
Heraldo Araujo

Heraldo Araujo

27/02/2021

Não necessariamente a impressora deve estar externa(acho que errei no que eu queria falar).


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.
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

Não necessariamente a impressora deve estar externa(acho que errei no que eu queria falar).


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.
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

<?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
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

atualmente to testando esse:

<?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
GOSTEI 0
Virgilio Jr

Virgilio Jr

27/02/2021

Depois de muita dor de cabeça, somente com o metodo CURL consegui realizar a primeira etapa do que eu queria,
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.
GOSTEI 0
POSTAR