Pascal/Turbo Pascal - Imprimir por puerto USB

 
Vista:

Imprimir por puerto USB

Publicado por Miguel (159 intervenciones) el 08/10/2008 03:54:15
Bueno resulta que quiero largar la impresión por una LASER. Buscando un par de soluciones me encontré con un par de programas que te manda la impresión del puerto LPT1 al USB. El tema está en que la letra sale enorme, y este programa no trae opción para achicar la letra. Mi pregunta es si hay algún comando en pascal para controlar esto, o en todo caso si hay otra forma de imprimir directamente por puerto USB, con alguna UNIT o algún procedimiento.

Desde ya se agradece.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Imprimir por puerto USB

Publicado por Miguel (159 intervenciones) el 09/10/2008 03:50:00
Bueno de tanto buscar encontre una UNIT.
Pero no la puedo compilar me tira un error.

Aca dejo parte del código en donde tira el error.

unit egaprtsc;

interface

uses crt,printer,dos,graph;

var abort : boolean;

{ This is the procedure to call from your program when you want }
{ a hardcopy. }
procedure dumpscreen;

implementation

const ESC = #27;
one : word = 1;

var regs : registers;
start_from_left,move_vertically : string;

procedure sendstring(var s : string);
{ Procedure to dump the accumulated data string to the laserjet }

inline ($5B/ { POP BX (GET STRING OFFSET) } {{{{{ACA ME TIRA EL ERROR SINTAX ERROR , ; EXPECTD BUT ( FOUND }}}}}
$5A/ { POP DX (GET STRING SEGMENT) }
$1E/ { PUSH DS (SAVE DS REGISTER) }
$8E/$DA/ { MOV DS,DX (ALLOW ACCESS TO STRING DATA) }
$8A/$0F/ { MOV CL,[BX] (GET S[0],LENGTH OF STRING) }
$30/$ED/ { XOR CH,CH }
$31/$D2/ { XOR DX,DX (SELECT LPT1) }
$43/ { INC BX (POINT TO NEXT COMPONENT OF S) }
$8A/$07/ { MOV AL,[BX] (PUT NEXT CHARACTER IN AL) }
$30/$E4/ { XOR AH,AH (SELECT FUNCTION 0) }
$CD/$17/ { INT $17 (BIOS PRINTER OUTPUT) }
$E2/$F7/ { LOOP -9 (GET NEXT CHARACTER) }
$1F); { POP DS (RESTORE DS REGISTER) }
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Imprimir por puerto USB

Publicado por Adolfo Eduardo (6 intervenciones) el 11/10/2011 06:25:39
Hola amigo, aquí te pongo la respuesa que le he dado a otro camarada:

Después de investigar en Internet me enteré que los puertos USB no tienen soporte en el MS-DOS y que por lo tanto todos los programas que corren en MS-DOS como Turbo Pascal 7.0 no pueden mandar a imprimir a impresoras conectadas por puerto USB y solo es posible hacerlo a impresoras con puerto paralelo. Por eso es que resulta el Run-Time error 160: Divice write fault.

El programa DOS2USB que descargue de aquí: http://www.dos2usb.com/index.htm es el programa que me ha permitido hacer uso de la impresora desde el entorno de Turbo Pascal 7.0; una vez instalado el programa DOS2USB me ha sido posible imprimir en papel mis programas fuente .PAS (repito desde el entorno Turbo Pascal 7.0) y también imprimir en papel los resultados de Salida (Output) al ejecutar mis programas .EXE que pueden estar situados en cualquier lugar.

Por otra parte es importante recordar que para poder hacer uso de la impresora y poder imprimir los archivos fuente .PAS que estamos leyendo desde el entorno Turbo Pascal 7.0; el archivo .PAS debe de estar situado previamente en la carpeta BIN de tp que es donde se encuentran los programas PRNFLTR.PAS y PRNFLTR.EXE que son los que permiten el uso de la impresora desde el entorno Turbo Pascal 7.0, de otro modo resultará el mensaje de error: “Could not find printer filter PRNFLTR” .

El programa DOS2USB es de verdad que muy, muy bueno pues entre otras cosas permite cambiar el tipo de letra, el tamaño, el color, los márgenes de impresión, cambiar la codificación etc. Solo hay un detalle, el programa no es gratuito y tiene un costo de 20 dólares americanos pero, se puede descargar una versión de prueba totalmente funcional y usarse por unos días. Para ser franco vale la pena hacer el gasto pues no es muy caro y es extraordinariamente útil!!!!

Ya para finalizar, yo simplemente instalé el programa DOS2USB y no hice ninguna modificación de configuración ni en Turbo Pascal, ni en el programa que controla mi impresora y ni siquiera en el programa mismo de DOS2USB!! es decir, solo instalé el programa y todo funcionó! y eso que mi impresora es una HP LaserJet P1006 y Turbo Pascal 7.0 tiene predefinida una impresora EPSON (File>Printer setup...>Command line: $NOSWAP /EPSON) De todos modos el programa viene con un manual.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Imprimir por puerto USB

Publicado por gregorio (1 intervención) el 24/05/2015 22:21:38
Muchísimas gracias, Adolfo Eduardo; ya había abandonado la programación en turbo pascal, por ese motivo principalmente. Es demasiado engorroso, tener que copiar por otros medios tu óodigo fuente cuando estas programando, y ahora que he leído tu aporte, me dí a la tarea de bajar y probar el archivo, que funciona de maravilla, imprimo en una lasser samsung. y todo bien. saludos y gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar