Sustituir RPreview por Reader

Post Reply
User avatar
Sebastián Almirón
Posts: 125
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Sustituir RPreview por Reader

Post by Sebastián Almirón »

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
User avatar
sysctrl2
Posts: 833
Joined: Mon Feb 05, 2007 7:15 pm
Contact:

Re: Sustituir RPreview por Reader

Post by sysctrl2 »

a que te refieres con READER ?
es ADOBE READER ?

SALUDOS.
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Sustituir RPreview por Reader

Post by karinha »

Se te refieres a ADOBE READER:

http://fivewin.com.br/index.php?/topic/ ... /?hl=adobe

Salu2
João Santos - São Paulo - Brasil
elvira
Posts: 462
Joined: Fri Jun 29, 2012 12:49 pm

Re: Sustituir RPreview por Reader

Post by elvira »

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 :D :roll: :roll:
User avatar
lucasdebeltran
Posts: 1303
Joined: Tue Jul 21, 2009 8:12 am
Contact:

Re: Sustituir RPreview por Reader

Post by lucasdebeltran »

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:

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.
User avatar
Sebastián Almirón
Posts: 125
Joined: Mon Dec 12, 2005 9:56 am
Location: Moralzarzal - Spain

Re: Sustituir RPreview por Reader

Post by Sebastián Almirón »

Gracias Lucas, va ser verdad de cuatro ojos ven más que dos. :D

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
Post Reply