JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 18 Abr, 2008 9:16 pm Asunto: Apertura de Cajón MiniPrinters: Puerto USBxxx |
|
|
Esta función envia una señal a las impresoras Miniprinters como SECUENCIAS DE ESCAPE, para que abra el cajón portamonedas conectada a ellas. En el foro ya hay codigo para abrir el cajón a traves del puerto LPTxx y SERIExx, pero no he visto para impresoras con puerto virtual que son los puertos USB.
| Código: |
// Función que manda secuencias de ESCAPE a las impresoras, Ejemplo: Abrir Cajón Portamonedas
void __fastcall ImprimirESC(AnsiString PrinterName, LPVOID Data, DWORD Count)
{
// Estructura con la informacion sobre el documento
struct{
char *DocName, *OutputFile, *DataType;
} DocInfo = {"Abrir", 0, "RAW"};
// Obtener un handle de Impresora
HANDLE Handle;
if ( !OpenPrinter(PrinterName.c_str(), &Handle, NULL) )
throw Exception("Operación invalida con la Impresora");
try
{
// Informar al spooler del comienzo de impresion
if(StartDocPrinter(Handle, 1, LPBYTE(&DocInfo)) == 0)
throw Exception("Operación invalida con la Impresora");
// Enviar los Datos Directamente
DWORD Bytes;
if(!WritePrinter(Handle, Data, Count, &Bytes) || Bytes != Count)
throw Exception("Operación invalida con la Impresora");
}
__finally
{
ClosePrinter(Handle);// Devolver el handle de impresora
}
}
|
//**************************************************************************************
// Cajón con Apertura Impresora Miniprinters con Puerto USB
// EN EXADECIMAL PARA EPSON: {0x1B,0x70,0x00,0x64,0xC8}
// EN DECIMAL PARA EPSON: {27,112,0,100,200}
// EN EXADECIMAL PARA SAMSUNG: {0x1B,0x70,0x00,0x19,0xff}
// EN DECIMAL PARA SAMSUNG: {27,112,0,25,255}
| Código: |
char ESCAPE[5]; //EJEMPLO SECUENCIA DE ESCAPE EN EXADECIMAL PARA EPSON(APERTURA DE CAJON)
ESCAPE [0] = 0x1B;
ESCAPE [1] = 0x70;
ESCAPE [2] = 0x00;
ESCAPE [3] = 0x64;
ESCAPE [4] = 0xC8;
//EJEMPLO DE COMO FUNCIONA LA FUNCION "ImprimirESC()"
ImprimirESC("Nombre_de_la_Impresora", ESCAPE, sizeof(ESCAPE));
|
_________________ Muchos hombres no se equivocan jamás porque no se proponen nada razonable. |
|