Impressão direta via HTTP para softwares web
O AGGM Server Print permite impressão direta de conteúdo enviado por aplicações web sem exibir a caixa de diálogo da impressora. O programa atua como um servidor local que escuta em uma porta definida, e ao receber uma requisição, envia o documento diretamente para a impressora padrão configurada.
http://apiprint.seudominio.com/
).Para dúvidas ou problemas, entre em contato pelo e-mail: [email protected]
<?php
error_reporting(0);
ini_set("display_errors", 0);
date_default_timezone_set('America/Sao_Paulo');
function enviarParaImpressora($conteudo, $url, $tipo = 'html') {
$headers = [
'html' => 'Content-type: text/html',
'pdf' => 'Content-type: application/pdf',
];
$content = ($tipo === 'pdf') ? file_get_contents($conteudo) : $conteudo;
$context = stream_context_create([
'http' => [
'header' => $headers[$tipo] ?? $headers['html'],
'method' => 'POST',
'content' => $content,
'timeout' => ($tipo === 'pdf') ? 60 : 5
]
]);
$resposta = file_get_contents($url, false, $context);
if ($resposta === false) {
return "Não foi possível enviar a impressão. Verifique se o servidor está online.";
}
$dados = json_decode($resposta);
return "Status: {$dados->status} Impressão enviada
Impressora: {$dados->impressora}
";
}
$urlServidor = 'https://1402-186-233-109-200.ngrok-free.app/';
$pagina = $_GET['pg'] ?? '';
if ($pagina === 'paises') {
$html = implode('
', ['Brasil', 'Estados Unidos', 'Angola', 'Afeganistão', 'Ruanda', 'Cingapura']);
echo enviarParaImpressora($html, $urlServidor, 'html');
} else if ($pagina === 'texto') {
$html = "
<html>
<head>
<style>
body { font-family: Arial; font-size: 14pt; }
h1 { color: blue; }
p { margin-bottom: 10px; }
</style>
</head>
<body>
<h1>Título da impressão</h1>
<p>Este é um texto formatado</b> enviado do PHP.
<img src='https://wallpapers.com/images/hd/minion-pictures-tpgty658tjf5cai7.jpg' width='300'></p>
</body>
</html>
";
echo enviarParaImpressora($html, $urlServidor, 'html');
} else if ($pagina === 'pdf') {
echo enviarParaImpressora('https://demos-teste.intelsystem.app/teste.pdf', $urlServidor, 'pdf');
}
?>
<a href="?pg=paises">Nomes de países</a><br>
<a href="?pg=texto">Texto teste</a><br>
<a href="?pg=pdf">Imprimir PDF teste</a><br>