Impresión en red

Otra vez yo. Te cuento mi nuevo inconveniente: estoy haciendo un sistema que debe funcionar para una intranet de 2 pc, una ubicada en dirección y otra en secretaría, cada una de ellas tiene su impresora, pero no logro hacer que desde una pc se imprima en la impresora de la otra.
He realizado un formulario que carga un combobox con las impresoras y cuando se selecciona una de ellas cargo en la propiedad itemindex del objeto Printer el número de la selección (lo saque de un libro) pero siempre imprime en la impresora conectada a la Pc desde la cual se está trabajando. Si puedes ayudarme te lo agradecería.

1 respuesta

Respuesta
1
Ok entiendo tu pregunta, primeramente las impresoras deben estar dadas de alta en la computadora correcto que me imagino que eso es lógico y ya lo debes tener.
Ahora desde delphi como seleccionar la impresora bueno quizá el código que tengas no te esta funcionando bien ahí te va el código:
QuickReport1.PrinterSettings.PrinterIndex := Printer.Printers.IndexOf('NombreImpresora');
En esta linea le estas indicando a través del nombre de la impresora a que impresora imprimir entonces el IndexOf('NombreImpresora'); este te va a devolver el numero de la impresora y se lo asignara al printerIndex y listo entonces el nombre debe ser igual y como lo tienes en la maquina en la opción de impresoras y faxes si me explico verdad si tu a la impresora le pusiste Impresora1 entonces así le darás el nombre. Ok
Espero esto te funcione, recuerda que aunque este en red la impresora la debes tener agregada en la maquina donde la quieras usar. Ok
Hola, tuve algunos problemas por eso no te he contestado, PERDÓN!
Lamentablemente el código que me diste no me solucionó el problema, porque la impresión que me da problema no es a través de un reporte, sino usa unidad bajada de internet, y usa interrupciones para imprimir, te mando la parte del código para que lo veas, sino avisame y puedo mandarte toda la unidad;
function PrnOut(C:char):byte;assembler;
asm
mov dx,LptNo
mov al,C
mov ah,0
int 17h
xchg ah,al
end;
"LptNo", es una variable que toma el valor 0, me parece que por eso siempre imprime en la impresora conectada directamente a la PC. Pero además te cuento que cuando cargo en el combo los nombres de las impresoras instaladas a través del objeto Printer, siempre aparece primero la impresora conectada a la otra PC, y luego la que está conectada directamente. Espero ser clara y que me puedas ayudar, desde ya muchas gracias!
También pido una disculpa por no contestarte, ya que me encontraba de vacaciones jajaja, bueno pero ya regrese, sabes no comprendo muy bien que es lo que estas haciendo, tratas de decirme que hiciste código ensamblador para imprimir, mejor sabes que mandame toda la unidad como dices para poder ayudarte mejor.
Saludos mi nombre es manuel puedes mandarme la unidad a [email protected] pero avísame por todoexpertos que ya me la mandaste para que esta pregunta siga activa y yo pueda contestarte ok.
Te mande por correo la unidad
Estuve checando tu código, pero igual no me imprime, realmente no se porque el código ensamblador no funciona, no estoy muy familiarizado con este código, porque no me comentas en palabras el proceso que intentas hacer y mejor lo resolvemos de otra manera, sin usar este tipo de código, ok saludos
Esta unidad la uso para imprimir los certificados de escolaridad de los alumnos y para los recibos que se le entrega a cada padre cuando paga la cuota al colegio. Probé hacerlo con un report pero emite varias páginas con códigos extraños, supongo que debe ser porque lleva texto estático, de la base de datos solo saca el nombre del alumno. Una de las impresoras es una matriz de puntos Citizen 190 GSX y la otra es una chorro de tinta Epson 830.
La unidad se usa llamando primero el procedimiento "BeginPrn", luego "Prnln(cadena a imprimir)" (este se llama tantas veces como lineas tenga el text) y finalmente "EndPrn".
La variable LptNo debe ser = 0 para que imprima en la impresora conectada a la Pc, así imprime bien, el problema es que no puedo imprimir de una Pc en la impresora conectada a la otra Pc de la red.
Ok. me supongo que cuando pones LptNo := 0; es porque imprimira a la que esta conectada, ahora si le pones LptNo := 1; a donde imprime, me supongo a la segunda impresora que tengas conectada? Si es así, entonces la impresora que esta en red debes instalarla en la maquina, si me explico es decir compartirla, osea en la opción de Impresoras y Faxes de tu maquina ahí debe aparecer tanto la que tienes conectada directamente como la que esta en red, y yo me supongo que al cambiarle el valor a la variable LptNo := 1 deberá imprimir a la de red y no a la local. Ahora si todo lo tienes así, entonces este código no te esta reconociendo o solo sirve de manera local.
¿Dices qué intentaste hacerlo con un Report me imagino que es un QReport cierto? Y dices que te arrojo códigos extraños, esto es porque no tienes los driver para windows de ese impresora y me imagino que es la de matriz de puntos, porque me imagino que a la epson si puedes, ¿cierto?
No, no te preocupes no es ninguna molestia, para mi es un placer ayudarte en lo que pueda. Mira definitivamente lo de la variable LptNo ahí si no se que este pasando, pero con el QReporte quizá si podamos atacarlo, si me dices que hay otros reportes imprimiendo a esta impresora de matriz de puntos entonces hay algo mal en tu reporte.
1. Puede ser el tipo de font, checa el tipo de font de los reportes que si te imprime(listado de alumnos) y comparalo con el font del reporte que te arroja caracteres extraños.
2. Si ves que los fonts son iguales y no ves ningún extraño, entonces haz una prueba crea un reporte nuevo sencillo donde despliegues cualquier QRLabel y trata de imprimirlo, a lo que voy es que probablemente se haya dañado tu hoja de reporte o quizá por ahí un componente del QReport este causando unos conflctos, y ten encuenta lo del FONT porque es probable que no todos los fonts reconozca. Ok
Y dime que paso. Ok saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas