FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Sustituir RPreview por Reader
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Sustituir RPreview por Reader
Posted: Wed May 21, 2014 05:20 PM

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

Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Sustituir RPreview por Reader
Posted: Wed May 21, 2014 05:46 PM

a que te refieres con READER ?
es ADOBE READER ?

SALUDOS.

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Sustituir RPreview por Reader
Posted: Wed May 21, 2014 06:18 PM

Se te refieres a ADOBE READER:

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

Salu2

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 518
Joined: Fri Jun 29, 2012 12:49 PM
Re: Sustituir RPreview por Reader
Posted: Wed May 21, 2014 06:25 PM

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:

Posts: 1303
Joined: Tue Jul 21, 2009 08:12 AM
Re: Sustituir RPreview por Reader
Posted: Thu May 22, 2014 10:36 AM
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 (fw): Select all Collapse
    // 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.
Posts: 166
Joined: Mon Dec 12, 2005 09:56 AM
Re: Sustituir RPreview por Reader
Posted: Thu May 22, 2014 03:29 PM

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

Continue the discussion