Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Delphi puerto paralelo (https://www.clubdelphi.com/foros/showthread.php?t=46052)

Mariolarr 23-07-2007 09:00:27

Delphi puerto paralelo
 
Hola, soy nueva en el foro, así que espero que mi pregunta sea clara, a ver...
Me gustaria saber como puedo mandar a imprimir por puerto paralelo de una impresora términa el contenido de una ristra(donde un texto viene expresado por 121100102800760HOLA), algun componente que sea necesario, no se...
es la impresion de etiquetas. No se si me he expresado con claridad.
Gracias de antemano. ;)

ElDioni 23-07-2007 10:12:22

http://www.clubdelphi.com/foros/show...resion+directa

afxe 23-07-2007 10:19:15

Puerto impresora.
 
Este es un ejemplo simple para que empieces:
Código Delphi [-]
procedure Imprime;
var
  PT: integer;
  P  : PChar;
begin
  PT := FileOpen('LPT1', fmOpenWrite);
  if PT > 0 then begin
    P := 'Prueba de impresion' + #10 + #13;
    FileWrite(PT, P^, Length(P));
    P := #12; // Salto de página
    FileWrite(PT, P^, Length(P));
    FileClose(PT);
  end else begin
    ShowMessage('No he podido acceder a la impresora.');
  end;
end;

Esto manda caracteres a la impresora directamente, es decir, impresión en modo texto, a la antigüa usanza, usando la unidad printers imprimirás en modo gráfico, más lento, pero te dará más posibilidades.

Te hará falta echar un ojo a la función CharToOem para que se te impriman bien algunos caracteres, por la diferencia de la tabla de caracteres entre windows y las impresoras.

Saludos.

Mariolarr 23-07-2007 10:37:00

Gracias pero...
 
Gracias pero creo que no me habeis entendido chicos porque lo que quiero no es imprimir el texto que contiene un fichero ni el de una ristra sino la interpretacion del contenido, por ejemplo 121100105650140REMITENTE, imprimira remitente en las coordenadas indicadas (x,y) con el tipo y tamaño de fuente indicados (con la numeración), ... Se que con puerto serie un componente que funciona es TConPort pero en puerto paralelo no se.

Gracias ;)

MaMu 23-07-2007 19:29:19

Cita:

Empezado por Mariolarr
Gracias pero creo que no me habeis entendido chicos porque lo que quiero no es imprimir el texto que contiene un fichero ni el de una ristra sino la interpretacion del contenido, por ejemplo 121100105650140REMITENTE, imprimira remitente en las coordenadas indicadas (x,y) con el tipo y tamaño de fuente indicados (con la numeración), ... Se que con puerto serie un componente que funciona es TConPort pero en puerto paralelo no se.

Gracias ;)

Tendrias que explicar mas:

Código Delphi [-]
 
121100105650140REMITENTE

La longitud del numero es siempre fija?
Las coordenadas salen de ese mismo numero?
De que se compone ese numero, como se genera?

Saludos

afxe 25-07-2007 09:28:07

TComPort.
 
Con el TComPort puedes abrir también el puerto RS232, es decir, el puerto paralelo, no obstante, con el ejemplo que te puse anteriormente abres el puerto y envias caractes por dicho puerto, tal y como lo haría el TComPort. No obstante, Mamu tiene razón: ¿Qué significan esos números?

Con las impresoras nos podemos comunicar con varios lenguajes: xIBM, Modo Epson, PCL-5, PCL-6, etc... Normalmente, los drivers de windows evitan que tengamos que aprendernos todos esos lenguajes para sacar el mayor rendimiento a una impresora. Si tu "ristra" de números tienen algún significado para tu impresora (que lo dudo, pues no se parece a ninguno de los lenguajes que yo conozca, aunque no los conozco todos), abriendo el puerto (como te indiqué o con el TComPort) y enviándo dichos caracteres tu impresora los debe saber "interpretar" e imprimir correctamente.

Pero si la impresora no es capaz de interpretar esos números, tendrás que interpretarlos tú por ella, es decir, tendrás que usar el ejemplo del Dioni y usar el Canvas de la Printer para "dibujar" una interpretación de esos números, ya que por lo que comentas (posicionamiento (x,y), tipo de letra, tamaño de letra...) estamos hablando de impresión en modo gráfico.

De todas maneras, me uno a la duda de Mamu: ¿De donde han salido y qué significan esa ristra de números?

Saludos.


La franja horaria es GMT +2. Ahora son las 23:33:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi