Ícone do AGGM Server Print AGGM Server Print

Impressão direta via HTTP para softwares web

Visão Geral

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.

Galeria de Imagens

Informações do Arquivo

Baixar AGGM Server Print
Baixar AGGM Server Print TCP
Baixar AGGM Server Print HTTP
Baixar Win-rar

Como Funciona

Requisitos do Sistema

Suporte

Para dúvidas ou problemas, entre em contato pelo e-mail: [email protected]

Tutorial

Exemplo Código em PHP

                
                    
                    <?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 enviadaImpressora: {$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>

                        

Exemplo Código em PHP com Protocolo TCP

Precisa estalar o composer a biblioteca Mike42.
Composer: Baixar
E depois execute o Comando:
composer require mike42/escpos-php

             <?php

require 'vendor/autoload.php';

use Mike42\Escpos\Printer;
use Mike42\Escpos\EscposImage;
use Mike42\Escpos\PrintConnectors\NetworkPrintConnector;

// ===============================
// CONFIGURAÇÃO DA IMPRESSORA
// ===============================
$printerIP = "192.168.1.1";
$printerPort = 9100;

try {

    // Conecta na impressora pela rede
    $connector = new NetworkPrintConnector($printerIP, $printerPort);
    $printer = new Printer($connector);

    // ===============================
    // LOGO (Opcional)
    // ===============================
    if (file_exists("logo.png")) {
        $logo = EscposImage::load("logo.png");
        $printer->setJustification(Printer::JUSTIFY_CENTER);
        $printer->bitImage($logo);
        $printer->feed(1);
    }

    // ===============================
    // CABEÇALHO
    // ===============================
    $printer->setJustification(Printer::JUSTIFY_CENTER);

    $printer->text("================================\n");
    $printer->text("        LOJA EXEMPLO LTDA\n");
    $printer->text("      CNPJ: 12.345.678/0001-99\n");
    $printer->text(" Rua Exemplo, 123 - Centro\n");
    $printer->text("      Tel: (11) 99999-9999\n");
    $printer->text("================================\n\n");

    $printer->text("DOCUMENTO AUXILIAR DE VENDA\n");
    $printer->text("NAO E DOCUMENTO FISCAL\n\n");

    // ===============================
    // DADOS DA VENDA
    // ===============================
    $printer->setJustification(Printer::JUSTIFY_LEFT);

    $printer->text("DAV: 000001\n");
    $printer->text("Data: " . date("d/m/Y H:i:s") . "\n");
    $printer->text("Cliente: JOAO DA SILVA\n");

    $printer->text("--------------------------------\n");
    $printer->text("Descricao           Qtd    Total\n");
    $printer->text("--------------------------------\n");

    $printer->text("Coca-Cola 2L         2   20,00\n");
    $printer->text("Arroz 5Kg            1   28,90\n");
    $printer->text("Feijao 1Kg           3   26,70\n");

    $printer->text("--------------------------------\n");

    // ===============================
    // TOTAIS
    // ===============================
    $printer->setJustification(Printer::JUSTIFY_RIGHT);

    $printer->text("Subtotal:     R$ 75,60\n");
    $printer->text("Desconto:     R$  5,60\n");
    $printer->text("TOTAL:        R$ 70,00\n");

    $printer->feed();

    // ===============================
    // PAGAMENTO
    // ===============================
    $printer->setJustification(Printer::JUSTIFY_LEFT);

    $printer->text("Forma de Pagamento:\n");
    $printer->text("PIX\n\n");

    // ===============================
    // QR CODE (Opcional)
    // ===============================
    $printer->setJustification(Printer::JUSTIFY_CENTER);

    $printer->qrCode(
        "https://meusite.com.br",
        Printer::QR_ECLEVEL_L,
        6,
        Printer::QR_MODEL_2
    );

    $printer->feed();

    // ===============================
    // RODAPÉ
    // ===============================
    $printer->text("OBRIGADO PELA PREFERENCIA!\n");
    $printer->text("VOLTE SEMPRE!\n");

    $printer->feed(3);

    // Corta o papel
    $printer->cut();

    // Fecha a conexão
    $printer->close();

    header('Content-Type: application/json');

    echo json_encode([
        "success" => true,
        "host" => $printerIP . ":" . $printerPort,
        "message" => "Impressão realizada com sucesso."
    ]);

} catch (Exception $e) {

    header('Content-Type: application/json');

    echo json_encode([
        "success" => false,
        "host" => $printerIP . ":" . $printerPort,
        "message" => $e->getMessage()
    ]);
}

?>        

Exemplo Código em PHP com Protocolo HTTP

            
                <?php

$url = "http://localhost:3001/api/print";

$dados = [
    "commands" => [

        // LOGO
        [
            "type" => "image",
            "value" => "https://redis.test/pdf/logo.png",
            "align" => "center"
        ],

        // EMPRESA
        [
            "type" => "text",
            "value" => "EMPRESA MODELO LTDA",
            "align" => "center",
            "bold" => true,
            "width" => 2,
            "height" => 2
        ],

        [
            "type"=>"text",
            "value"=>"CNPJ: 12.345.678/0001-99",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"IE: 123.456.789.000",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"Rua das Flores, 123",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"Centro - Cidade/UF",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"Fone: (11) 3333-4444",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // TITULO

        [
            "type"=>"text",
            "value"=>"DOCUMENTO AUXILIAR DE VENDA",
            "align"=>"center",
            "bold"=>true,
            "width"=>2,
            "height"=>2
        ],

        [
            "type"=>"text",
            "value"=>"DVA Nº 000012548",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // DADOS

        [
            "type"=>"text",
            "value"=>"Cliente : JOÃO DA SILVA"
        ],

        [
            "type"=>"text",
            "value"=>"CPF     : 123.456.789-00"
        ],

        [
            "type"=>"text",
            "value"=>"Telefone: (11)99999-9999"
        ],

        [
            "type"=>"text",
            "value"=>"Vendedor: MARCOS OLIVEIRA"
        ],

        [
            "type"=>"text",
            "value"=>"Data    : 30/06/2026 14:58"
        ],

        [
            "type"=>"text",
            "value"=>"Caixa   : 001"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // CABEÇALHO PRODUTOS

        [
            "type"=>"text",
            "value"=>"ITEM DESCRIÇÃO"
        ],

        [
            "type"=>"text",
            "value"=>" QTD X VL.UNIT = TOTAL"
        ],

        [
            "type"=>"text",
            "value"=>"--------------------------------"
        ],

        // PRODUTOS

        [
            "type"=>"text",
            "value"=>"001 Arroz Tipo 1 5Kg"
        ],

        [
            "type"=>"text",
            "value"=>" 2 x 28,90 = 57,80"
        ],

        [
            "type"=>"text",
            "value"=>"002 Feijão Carioca 1Kg"
        ],

        [
            "type"=>"text",
            "value"=>" 3 x 9,90 = 29,70"
        ],

        [
            "type"=>"text",
            "value"=>"003 Açúcar Cristal 5Kg"
        ],

        [
            "type"=>"text",
            "value"=>" 1 x 24,50 = 24,50"
        ],

        [
            "type"=>"text",
            "value"=>"004 Café Torrado 500g"
        ],

        [
            "type"=>"text",
            "value"=>" 4 x 17,80 = 71,20"
        ],

        [
            "type"=>"text",
            "value"=>"005 Óleo de Soja"
        ],

        [
            "type"=>"text",
            "value"=>" 6 x 8,50 = 51,00"
        ],

        [
            "type"=>"text",
            "value"=>"006 Refrigerante 2L"
        ],

        [
            "type"=>"text",
            "value"=>" 2 x 9,99 = 19,98"
        ],

        [
            "type"=>"text",
            "value"=>"--------------------------------"
        ],

        // TOTAIS

        [
            "type"=>"text",
            "value"=>"Subtotal............. R$ 254,18",
            "bold"=>true
        ],

        [
            "type"=>"text",
            "value"=>"Desconto............. R$ 14,18"
        ],

        [
            "type"=>"text",
            "value"=>"Frete................ R$ 10,00"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        [
            "type"=>"text",
            "value"=>"TOTAL DA VENDA",
            "align"=>"center",
            "bold"=>true
        ],

        [
            "type"=>"text",
            "value"=>"R$ 250,00",
            "align"=>"center",
            "bold"=>true,
            "width"=>3,
            "height"=>3
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // PAGAMENTO

        [
            "type"=>"text",
            "value"=>"FORMA DE PAGAMENTO",
            "bold"=>true
        ],

        [
            "type"=>"text",
            "value"=>"PIX..............R$ 150,00"
        ],

        [
            "type"=>"text",
            "value"=>"CARTÃO CRÉDITO...R$ 100,00"
        ],

        [
            "type"=>"text",
            "value"=>"Troco............R$ 0,00"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // OBSERVAÇÃO

        [
            "type"=>"text",
            "value"=>"OBSERVAÇÕES",
            "bold"=>true
        ],

        [
            "type"=>"text",
            "value"=>"Mercadoria conferida pelo cliente."
        ],

        [
            "type"=>"text",
            "value"=>"Não aceitamos devolução sem cupom."
        ],

        [
            "type"=>"text",
            "value"=>"Garantia conforme fabricante."
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // BARCODE

        [
            "type"=>"barcode",
            "value"=>"000012548",
            "barcodeType"=>"CODE128"
        ],

        [
            "type"=>"text",
            "value"=>"Pedido Nº 000012548",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // QR CODE

        [
            "type"=>"text",
            "value"=>"Consulte seu pedido",
            "align"=>"center"
        ],

        [
            "type"=>"qrcode",
            "value"=>"https://aggmlux.org/pedido/12548",
            "size"=>6
        ],

        [
            "type"=>"text",
            "value"=>"https://aggmlux.org",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"================================"
        ],

        // RODAPÉ

        [
            "type"=>"text",
            "value"=>"OBRIGADO PELA PREFERÊNCIA!",
            "align"=>"center",
            "bold"=>true,
            "width"=>2,
            "height"=>2
        ],

        [
            "type"=>"text",
            "value"=>"Volte Sempre",
            "align"=>"center"
        ],

        [
            "type"=>"text",
            "value"=>"Documento sem valor fiscal",
            "align"=>"center"
        ],

        [
            "type"=>"feed",
            "lines"=>4
        ],

        [
            "type"=>"cut"
        ]

    ]
];

$json = json_encode($dados, JSON_UNESCAPED_UNICODE);

$ch = curl_init($url);

curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $json,
    CURLOPT_HTTPHEADER => [
        "Content-Type: application/json",
        "Content-Length: ".strlen($json)
    ],
    CURLOPT_RETURNTRANSFER => true
]);

$resposta = curl_exec($ch);

if(curl_errno($ch)){
    die(curl_error($ch));
}

curl_close($ch);

echo "<pre>";
echo $resposta;
echo "</pre>";
?>