![]() |
Cambiar impresora tiempo Ejecucion
Hola a todos! tengo una duda 'existencial'!!!
Tengo que cambiar la impresora en la que se mana un archivo en un momento dado, no la quiero predeterminada, puedo ponersela en algún parámetro x ejemplo en el shellExecute? ahora lo estoy imprimiendo asi, claro, sale xla predeterminada. ShellExecute(Printer.Handle, 'print', PChar(('hola.PDF')), nil, nil, 0); un saludo y gracias!! |
Yo para uso con Quickreport me he he creado esta función y me va perfectamente, puedes hacer la prueba. Un Saludo. |
ok pruebo y cuento!
gracias |
es un poco raro..no me hace absolutamente nada
le pongo GetImpresora('PDFCreator'); y me imprime por la predeterminada igual sin embargo le paso GetImpresora('NoExiste'); y me detecta que no existe... |
Sucede que la función que te pasó Marcos, sirve para obtener el índice de la lista de impresoras de la VCL dentro del propio entorno de tu proceso, y tu estas utilizando ShellExecute para imprimirlo, que donde el Shell crea un proceso nuevo según lo que tenga asociado al método "print" de los archivos con extensión PDF.
Una solución posible es utilizar el código de Marcos para cambiar el DefaultPrinter del sistema, algo que no me gustaría que haga algún programa de terceros que instale en mi PC. Si solo te interesa imprimir PDFs, te recomiendo buscar e investigar, que seguramente existan, formas mas completas para imprimir documentos de este tipo, tales como algun juego de APIs que ofresca Adobe. Saludos! |
El mismo problema...
:DHola gente, tengo el mismo problema. No puedo cambiar la impresora en tiempo de ejecucion. Uso Delphi 7 y Quickreport 4.05. Lo que yo hago es en un combo obtener todas las impresoras instaladas y ahi me muestra perfectamente las impresoras instaladas y con
obtengo la impresora por defecto. Ahora cuando elijo otra del combo cambio la propiedad antes mencionada asignandole el valor de la impresora que acabo de seleccionar pero cuando mando a imprimir el qiuckreport siempre me imprime en la impresora configurada por defecto. Desde ya les agradezco su respuesta. Saludos... |
Es muy simple, pon en el "uses" el "Printers", en un ComboBox carga todas la impresora que tienes, después sólo tienes que hacer "Printer.PrinterIndex = ComboBox.ItemIndex y listo.
Para cargar todas las impresora en un ComboBox lo que tienes que hacer es Seleccionar la impresora por la cual quieres imprimir y cambiar el Printer.PrinterIndex = ComboBox1.ItemIndex. Un saludo. |
Ejemplo de uso de la función que cité en su día.
ListaDescuadres es un objeto TQuickRep. y frLstDescuadres es el formulario contenedor. Un Saludo. |
Gracias
He aplicado la funcion que dice Marcos y me anduvo perfecto. Muchas gracias!!!!
|
La franja horaria es GMT +2. Ahora son las 18:28:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi