<?php

require __DIR__ . '/autoload.php'; //Nota: si renombraste la carpeta a algo diferente de "ticket" cambia el nombre en esta línea
use Mike42\Escpos\EscposImage;
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
use Mike42\Escpos\Printer;

/*
Este ejemplo imprime un hola mundo en una impresora de tickets
en Windows.
La impresora debe estar instalada como genérica y debe estar
compartida
 */

/*
Conectamos con la impresora
 */

/*
Aquí, en lugar de "POS-58" (que es el nombre de mi impresora)
escribe el nombre de la tuya. Recuerda que debes compartirla
desde el panel de control
 */

$nombre_impresora = "POS-58";

$connector = new WindowsPrintConnector($nombre_impresora);
$printer = new Printer($connector);
$printer->setJustification(Printer::JUSTIFY_CENTER);

$logo = EscposImage::load("logo.jpg", false);
$printer->bitImage($logo);

/*
Imprimimos un mensaje. Podemos usar
el salto de línea o llamar muchas
veces a $printer->text()
 */
$printer -> setFont(Printer::FONT_A);
$printer -> setTextSize(1, 1);
//$printer->setTextSize(2, 2);
$printer->text("\nTodo para su hogar\n");
$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);
//$printer->text("------------------\n");


$printer->feed(1);
$printer->setTextSize(2, 1);
$printer->setJustification(Printer::JUSTIFY_LEFT);
$printer->text("  Fecha:\n  Cliente:\n  RUC:\n");


/*
Hacemos que el papel salga. Es como
dejar muchos saltos de línea sin escribir nada
 */
$printer->feed(2);


title($printer, "Prueba A\n");
$printer -> setFont(Printer::FONT_A);
$printer -> setTextSize(1, 1);
$printer -> text("aqui va el nombre del producto.\n");
$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);
//$printer -> setTextSize(2, 2);
//$printer -> text("The quick brown fox jumps over the lazy dog.\n");
//$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);
$printer->feed(1);
title($printer, "Prueba B\n");
$printer -> setFont(Printer::FONT_B);
$printer -> setTextSize(1, 1);
$printer -> text("aqui va el nombre del producto.\n");
$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);
//$printer -> setTextSize(2, 2);
//$printer -> text("The quick brown fox jumps over the lazy dog.\n");
//$printer->textRaw(str_repeat(chr(196), 40).PHP_EOL);

$printer->feed(1);
$printer->setJustification(Printer::JUSTIFY_CENTER);
$printer->text("Gracias por su compra");
$printer->feed(3);


$printer -> cut();
$printer -> close();

function title(Printer $printer, $text)
{
    $printer -> selectPrintMode(Printer::MODE_EMPHASIZED);
    $printer -> text("\n" . $text);
    $printer -> selectPrintMode(); // Reset
}



/*
Cortamos el papel. Si nuestra impresora
no tiene soporte para ello, no generará
ningún error
 */
$printer->cut();

/*
Por medio de la impresora mandamos un pulso.
Esto es útil cuando la tenemos conectada
por ejemplo a un cajón
 */
$printer->pulse();

/*
Para imprimir realmente, tenemos que "cerrar"
la conexión con la impresora. Recuerda incluir esto al final de todos los archivos
 */
$printer->close();
