Hola a todos,
En un proceso de mejorar todo lo relacionado con la impresión en mis programas, he modificado la function PrinEnd (De printer.prg), y le he añadido estas líneas a continuación del if oPrinter:lMeta del comienzo:
oPrinter:cfile := GetEnv("TMP")+'\TMP'+alltrim(str(nRandom()))+'.pdf'
do whil file(oPrinter:cfile)
oPrinter:cfile := GetEnv("TMP")+'\TMP'+alltrim(str(nRandom()))+'.pdf'
enddo
Me funciona muy bien, pero tengo que buscar la manera de indicarle al Reader la impresora en la que hay que imprimir el documento (la misma que tenga configurada mi programa para ese tipo de documento), y no que salga la predeterminada, ya que el usuario tiene varias a su disposición y casi siempre se equivoca al elegirla. ¿Alguna idea ?
Saludos
Sustituir RPreview por Reader
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Sustituir RPreview por Reader
a que te refieres con READER ?
es ADOBE READER ?
SALUDOS.
es ADOBE READER ?
SALUDOS.
Cesar Cortes Cruz
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
SysCtrl Software
Mexico
' Sin +- FWH es mejor "
Re: Sustituir RPreview por Reader
João Santos - São Paulo - Brasil
Re: Sustituir RPreview por Reader
Sebas,
Entonces, ¿conviertes los emf a pdf y los muestras con el Adobe?.
Creo que entonces en el código de tprinter hay que hacer más cambios.
Aprovechando, por favor ¿has avanzado algo con el myreport?.
Muy agradecida
Entonces, ¿conviertes los emf a pdf y los muestras con el Adobe?.
Creo que entonces en el código de tprinter hay que hacer más cambios.
Aprovechando, por favor ¿has avanzado algo con el myreport?.
Muy agradecida
- lucasdebeltran
- Posts: 1303
- Joined: Tue Jul 21, 2009 8:12 am
- Contact:
Re: Sustituir RPreview por Reader
Sebastián,
Antes de llamar al Acrobat guardas la impresora por defecto, la cambias a la que necesites y tras ello restauras la impresora por defecto original.
Por ejemplo:
Antes de llamar al Acrobat guardas la impresora por defecto, la cambias a la que necesites y tras ello restauras la impresora por defecto original.
Por ejemplo:
Code: Select all
// Leo impresora por defecto
cPrinter := GetProfString( "windows", "device" , "" )
// cambio impresora elegida
WriteProfString( "windows", "device", cNewPrinter )
SysRefresh()
//PrinterInit()
...
Llamada a WinExec para Acrobat Reader
// restauro impresora original
WriteProfString( "windows", "device", cPrinter )
Muchas gracias. Many thanks.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
Un saludo, Best regards,
Harbour 3.2.0dev, Borland C++ 5.82 y FWH 13.06 [producción]
Implementando MSVC 2010, FWH64 y ADO.
Abandonando uso xHarbour y SQLRDD.
- Sebastián Almirón
- Posts: 125
- Joined: Mon Dec 12, 2005 9:56 am
- Location: Moralzarzal - Spain
Re: Sustituir RPreview por Reader
Gracias Lucas, va ser verdad de cuatro ojos ven más que dos.
A falta de chequearlo más a fondo, por si da algún problema, solo con añadir las cuatro líneas indicadas, se sustituye el Rpreview por el visor de PDF en todas las vistas previas de nuestro programa, en realidad la clase TPrinter ya está preparada para ello con solo indicarle que la propiedad cFile tiene la cadena pdf en algún lugar, lo que hacen estas líneas es forzar eso.
Elvira, las modificaciones a MyRpt estoy en ello, cuando tengo tiempo, espero tener una versión estable en breve.
Saludos
A falta de chequearlo más a fondo, por si da algún problema, solo con añadir las cuatro líneas indicadas, se sustituye el Rpreview por el visor de PDF en todas las vistas previas de nuestro programa, en realidad la clase TPrinter ya está preparada para ello con solo indicarle que la propiedad cFile tiene la cadena pdf en algún lugar, lo que hacen estas líneas es forzar eso.
Elvira, las modificaciones a MyRpt estoy en ello, cuando tengo tiempo, espero tener una versión estable en breve.
Saludos