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',
'pos' => 'Content-type: application/pos',
];
$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 "<b>Status:</b> {$dados->status} Impressão enviada<br><b>Impressora:</b> {$dados->impressora}<br>";
}
$urlServidor = 'https://1402-186-233-109-200.ngrok-free.app/';
$pagina = $_GET['pg'] ?? '';
if ($pagina === 'paises') {
$html = implode('<hr>', ['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 <b>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');
} else if ($pagina === 'pos') {
/*Modelo 58mm*/
$text = "
D A V - Documento Auxiliar
da Nota Fiscal de
Consumidor Eletrônica
*** SEM VALOR FISCAL ***
DAV Nº: 000001
Data: 19/06/2025 14:58:18
Terminal: 001 Usuário: 005
Caixa: 02
Vendedor: ___________
Loja: VAREJO LTDA
CNPJ: 00.000.000/0001-00
Endereço: TESTE
----------------------------
CÓD DESCRIÇÃO QTD VL
----------------------------
01 CABO USB 2.0 1un 8,00
MACHO/MACHO
02 PEN DRIVE 1un 18,00
CHAVEIRO 8GB
----------------------------
TOTAL PRODUTOS: 26,00
DESCONTOS: 0,00
ACRÉSCIMOS: 0,00
----------------------------
VALOR A PAGAR: 26,00
PAGAMENTO: PIX
QTD. ITENS: 2
----------------------------
NAO TROCAMOS SEM NOTA
PRAZO DE TROCA: 7 DIAS
C/ EMBALAGEM E PAGTO
**OBRIGADO, VOLTE SEMPRE**
";
echo enviarParaImpressora($text, $urlServidor, 'pos');
}
?>
<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>
<a href="?pg=pos">DVA estilo POS (text/pos)</a><br>