 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Vie 18 Abr, 2008 1:59 am Asunto: Impresion caracteres de escape en builder |
|
|
Estimados, tengo que enviar por puerto COM1( no tengo problemas con ello ) caracteres, pero hay unos llamados de escape que sirven para manipular de una forma especifica una impresora de matriz para cheques.
Me han enviado codigo para poder escribir en dicha impresora en basic.
| Código: |
Private Sub Command1_click()
MSComm1.Output=Chr$(&H1B)+"L"+Chr$(10)+Chr$(13)
MSComm1.Output=Chr$(&H1B)+"W"+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(255)
MSComm1.Output=Chr$(&HA)
MSComm1.Output=Chr$(&HC)
|
Como se puede traducir esto?, Chr(0) -->char(0)?? y los otros?..
Alguien me podria hechar una mano en como quedaría ello en nuestro amado builder????.
De antemano muchisimas gracias. |
|
| Volver arriba |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 18 Abr, 2008 7:10 am Asunto: Re: Impresion caracteres de escape en builder |
|
|
| jotny escribió: | Me han enviado codigo para poder escribir en dicha impresora en basic.
| Código: |
Private Sub Command1_click()
MSComm1.Output=Chr$(&H1B)+"L"+Chr$(10)+Chr$(13)
MSComm1.Output=Chr$(&H1B)+"W"+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(0)+Chr$(255)
MSComm1.Output=Chr$(&HA)
MSComm1.Output=Chr$(&HC)
|
Como se puede traducir esto?, Chr(0) -->char(0)?? y los otros?.. |
En principio la idea es correcta: CHAR(0) equivale a Chr$(0). Los otros códigos que andan por ahí supongo que serán hexadecimales; conviértelos:
| Cita: | 1B -> 27
A -> 10
C -> 12 |
Es decir:
| Código: | CHR$(&H1B) + "L" + CHR$(10) + CHR$(13) » CHAR(27) + "L" + CHAR(10) + CHAR(13) |
_________________ Un saludo
Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA) |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Vie 18 Abr, 2008 4:58 pm Asunto: Gracias, voy a probar |
|
|
Gracias, probaré y enviaré a escribir por el puerto con esa traduccion.
Luego les cuento... |
|
| Volver arriba |
|
 |
JesúsGandia Master


Registrado: 17 Jul 2004Mensajes: 403Ubicación: Gandia, Valencia
|
Publicado: Vie 18 Abr, 2008 9:10 pm Asunto: |
|
|
// Función que manda secuencias de ESCAPE a las impresoras, Ejemplo: Abrir Cajón Portamonedas
| Código: |
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. |
|
| Volver arriba |
|
 |
jotny Master


Registrado: 17 Feb 2004Mensajes: 226Ubicación: santiago
|
Publicado: Dom 20 Abr, 2008 8:26 am Asunto: Interesante |
|
|
Gracias por tu ayuda.
Probaré el codigo para ver que ocurre, de todas maneras mi intension es crear una clase que, teniendo las secuencias de escape de la impresora, pueda enviar al formulario un texto en las coordenadas x,y.
Eso ayudaría bastante ya que, permitiria parametrizar el formulario que se desea tener como salida.
Mientras voy dando con la solucion, les iré comentando....
Cualquier apoyo al respecto, será excelente... muchas gracias de antemano. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|