PDA

Ver la Versión Completa : imprimir pdf con TPrinterSetupDialog


manolop
15-03-2007, 02:18:03
Hola, si ejecuto TPrinterSetupDialog y luego quiero imprimir uno o varios pdf por la impresora seleccionada, como deberia mandarlo?. Alguna idea?. Muchas gracias de antemano.

ContraVeneno
15-03-2007, 02:47:43
Según la ayuda de delphi (presionando F1), al ejectuar este cuadro de diálogo, si el usuario pulsa aceptar, te va a regresar True (verdadero) y este valor lo puedes revisar para ver si mandas o no llamar el método print.

Neftali [Germán.Estévez]
15-03-2007, 11:07:47
si ejecuto TPrinterSetupDialog y luego quiero imprimir uno o varios pdf por la impresora seleccionada, como deberia mandarlo?

Para imprimir PDF yo utilizo:


// imprimir el fichero
ShellExecute(Handle, 'print', PChar('c:\temp\fichero1.pdf'), nil, nil, SW_HIDE);


Este método es sencillo, pero poco flexible; Te cogerá la mayoría de parámetros esablecidos por defecto.
Si necesitas especificar más cosas (las que se pueden obtener del TPrintDialog), tal vez deberás utilizar en control ActiveX que viene con Adobe (AcroPDF); Deberás importarlo primero (de eso puedes encontrar info en los foros) y lugo cargar dentro el PDF; Desde ahí y utilizando el control tienes acceso a más opciones y al método print.

manolop
15-03-2007, 11:36:11
Ya habia intentado ShellExecute pero lo manda a imprimir a la impresora por defecto. Lo que hago es si con TPrinterSetupDialog he pulsado aceptar lanzo a imprimir pero necesito saber como lanzar a la impresora seleccionada por el usuario. Muchas gracias.

Neftali [Germán.Estévez]
15-03-2007, 12:25:32
Lo que hemos hablado aquí alguna vez es, cambiar la impresora por defecto justo antes de imprimir, lanzar la impresión y luego restaurar la que estaba.

manolop
15-03-2007, 19:42:48
Hola tengo claro el tema de cambiar la impresora por defecto pero lo que no se es como obtener la impresora seleccionada en el TPrinterSetupDialog, gracias.

Neftali [Germán.Estévez]
16-03-2007, 11:06:54
Échale un Vistazo a TPrintDialog y a la Clase TPrinters.