PDA

Ver la Versión Completa : Imprimir caracteres de control


manuweb
04-12-2009, 16:49:12
Hola forer@s.

Tengo un programa TPV (en PHP) que imprime sin problema en la impresora de tikets. Para la apertura de cajón (conectado a COM1) usaba un ejecutable escrito en Delphi en el que escribía directamente al puerto usando :


Cadena:String;

//

Cadena := #27#112#0#60#240#13#10; // los codigos del cajón




Ahora lo necesito para un cajón conectado directamente a la impresora y quería hacerlo similar, pero con un valor almacenado en un ini (para poder cambiar si cambia el modelo de impresora):


Cadena:String;

//
Cadena := MiFichero.ReadString ('Cajon','Apertura','desconocida');

No consigo que abra el cajón, escribe directamente el valor puesto en el ini.

Cadena := #10; // funciona, avanza linea en blanco
Cadena := '#10';// NO FUNCIONA, imprime #10

Es como si en lugar de imprimir lo que quiero el lo almacena entre comillado.

¿Como debo definir la variable Cadena para que funcione? ya que:



Gracias

rgstuamigo
04-12-2009, 23:11:00
Pues asi:;)
Cadena := #27#112#0#60#240#13#10;
O tambien su equivalente en ASCII;)
Saludos...:)

manuweb
05-12-2009, 09:43:57
Gracias pero:

Cadena := #27#112#0#60#240#13#10;

no da el mismo resultado que esto:

Cadena := '#27#112#0#60#240#13#10';

La única solución que veo por el momento es crear un ejecutable por cada tipo de cajón. Ya que no puedo leer Cadena ni desde un ini ni desde una Base de datos ni desde ningún sitio.

Gracias igualmente.

rgstuamigo
05-12-2009, 15:47:08
Gracias pero:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)Cadena := #27#112#0#60#240#13#10;


no da el mismo resultado que esto:

Código Delphi [-] (http://www.clubdelphi.com/foros/#)Cadena := '#27#112#0#60#240#13#10';


La única solución que veo por el momento es crear un ejecutable por cada tipo de cajón. Ya que no puedo leer Cadena ni desde un ini ni desde una Base de datos ni desde ningún sitio.

Gracias igualmente.
Cómo? no entiendo:
desde luego que esto:
Cadena := #27#112#0#60#240#13#10;
NO ES LO MISMO que esto
Cadena := '#27#112#0#60#240#13#10';

El uno es una cadena de secuencias de Caracteres AsCII y el el otro yo diria es una palabra.
No entiendo tu Objeción (http://www.wordreference.com/definicion/objeci%C3%B3n) :rolleyes: :confused::o:)
Por otro lado podrias tranquilamente guardar la secuencia de número ASCII en tu archivo .INI y al leerlo podria utilizar la funcion CHR de Delphi para obtener el equivalente en ASCII.
Por ejemplo:
chr(65) me devuelve 'A';
chr(32) me devuelve el Espacio ' ';
etc,etc,etc.
Saludos...:)

manuweb
05-12-2009, 17:33:29
Por otro lado podrias tranquilamente guardar la secuencia de número ASCII en tu archivo .INI y al leerlo podria utilizar la funcion CHR de Delphi para obtener el equivalente en ASCII.
Por ejemplo:
chr(65) me devuelve 'A';
chr(32) me devuelve el Espacio ' ';
etc,etc,etc.
Saludos...:)

Podría almacenar los códigos mumericos 27,112,0 (#27#112#0) como una cadena '27,112,0' y recorrer quitando las comas para luego imprimir directamente chr(27)+chr(112)+chr(0). Voy a probar.

Gracias

Croatians
08-12-2009, 17:23:45
tengo que armar un programita, que va a cargar unos datos, y luego los va a imprimir en una hoja. el tema es que la posicion se tiene que poder especificar con bastante precision.muy probable me den los datos en milimetros. no estoy seguro de esto.alguna recomendacion?gracias

rgstuamigo
08-12-2009, 17:49:38
tengo que armar un programita, que va a cargar unos datos, y luego los va a imprimir en una hoja. el tema es que la posicion se tiene que poder especificar con bastante precision.muy probable me den los datos en milimetros. no estoy seguro de esto.alguna recomendacion?gracias
Pues deberias usar un reporteador como por ejemplo QuickReport,Rave Report,Cristal Report,Fast Report,etc,etc,etc, que seguro te van a fascilitar la vida.;).
Saludos...:)