FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour conservar la impresora por defecto .
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
conservar la impresora por defecto .
Posted: Thu May 05, 2016 01:45 PM

Cada vez que imprimimos en una impresora distinta ,ésta se vuelve la impresora por defecto del sistema.
Entiendo que ese comportamiento está bien ya que es el de las demas palicaciones por defecto , pero se podría imprimir en una impresora si que esto ocurriera y que permaneciera por defecto la que estaba antes de imprimir ?
Gracias. :D

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 02:09 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 02:55 PM

Si ,ya he visto el post entero :? , pero no resuelve lo que pregunto ... en el post se comenta el cambio realizado en printer que hace que la última impresora usada sea la que se queda por defecto , yo necesito que la impresora por defecto no cambie al imprimir en otra. ...
Si vuelvo al código antiguo de tprinter funciona lo que comento , pero esa no es una buena solución. :(

Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 03:02 PM
Maybe:

Code (fw): Select all Collapse
   // Guarde el nombre:
   sPrinterName:=PRNGETNAME()
 
   Después:
 
   SetDefaultPrinter(  sPrinterName )


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 728
Joined: Fri Oct 07, 2005 07:38 AM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 03:03 PM

Siguiendo con interés ... :| :|

Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 03:06 PM
Ó,

Code (fw): Select all Collapse
   cImpressoraPadrao    := PrnGetName()

   nImpressoraSelecionada := GetPrintDC( GetActiveWindow() )

   If nImpressoraSelecionada = 0 // Nenhuma Impresso Selecionada

      Return .f.

   EndIf
   
   SetDefaultPrinter( PrnGetName() )
 
   faço a impressao
 
   volta para a impressora padrao

   SetDefaultPrinter( cImpressoraPadrao )


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 03:30 PM
Bien he usado el ejemplo testprn.prg para aislar el problema .
Le he modificado un poco ... he forzado la impresion en la impresora "miepson" que es una impresora matricial que imprime en hojas de papel continuo LETTER .
si recupero la impresora de esta forma no funciona la asignacion de tamaño de papel y hace el salto de pagina como si fuera un DINA4 .
Este mismo ejemplo usando el codigo viejo de tprinter funciona correctamente ...

Code (fw): Select all Collapse
function PrintMe()
   local oPrn
  local sPrinterName := PRNGETNAME()

   PRINT oPrn NAME "Test" to "miEpson"
   
     oPrn:DraftMode( .T. )
     oPrn:SetPage( 1 )
   
      PAGE
         oWnd:Print( oPrn, 1, 1, 2 )        // Scale factor 2
      ENDPAGE
   ENDPRINT

 SetDefaultPrinter(  sPrinterName  )

return nil
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: conservar la impresora por defecto .
Posted: Thu May 05, 2016 06:06 PM
Master, acá funcionó...

Code (fw): Select all Collapse
#include "FiveWin.ch"

STATIC oWnd

function Main()

   DEFINE WINDOW oWnd FROM 1, 1 TO 20, 60 TITLE "Printing a Window"

   @ 3, 3 BUTTON "&Print me" OF oWnd SIZE 80, 20 ;
      ACTION PrintMe()  // try also with oWnd:HardCopy()

   ACTIVATE WINDOW oWnd

return nil

function PrintMe()

   local oPrn

   local sPrinterName := PRNGETNAME()

   PRINT oPrn NAME "Test" to "miEpson"
   
     oPrn:DraftMode( .T. )
     oPrn:SetPage( 1 )
   
      PAGE
         oWnd:Print( oPrn, 1, 1, 2 )        // Scale factor 2
      ENDPAGE

   ENDPRINT

   ? sPrinterName

   SetDefaultPrinter(  sPrinterName  )

return nil


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1516
Joined: Thu May 27, 2010 02:06 PM
Re: conservar la impresora por defecto .
Posted: Fri May 06, 2016 05:52 AM
Si Karinha , he descubierto que lo que pasa es que existe otro bug relacionado con el cambio de impresora y que me afecta al salto de página . Tu solución funciona perfecta :-) .
El problema es que conserve o no la impresora original si me paso desde cualquier impresora a ésta, la primera vez no hace caso al salto de página . Una vez queda está como predeterminada, el salto ya se hace bien .
Una primera aproximación pasa por hacer esto :

Code (fw): Select all Collapse
function PrintMe()

   local oPrn

   local sPrinterName := PRNGETNAME()
  
  //--------  nuevo para que el salto sea correcto ----------
  SetDefaultPrinter(  "miEpson" )
  PintInit()
  sysrefresh()

   PRINT oPrn NAME "Test" to "miEpson"
   
     oPrn:DraftMode( .T. )
     oPrn:SetPage( 1 )
   
      PAGE
         oWnd:Print( oPrn, 1, 1, 2 )        // Scale factor 2
      ENDPAGE

   ENDPRINT

   ? sPrinterName

   SetDefaultPrinter(  sPrinterName  )

return nil


Ya tengo aislado el problema y creo que tengo una solución buena para incluir en el código de printer.prg .
En cuanto lo tenga "ajustado" lo publico aquí por si a alguien mas le pasa .
También voy a tratar de añadir una opción donde podamos decidir el comportamiento de printer , si vuelve a la impresora inicial o no .
Gracias por tu ayuda .


------------------------- edito ----------------------------------------

He borrado la solución propuesta pues me causa problemas con una impresora adobe pdf....
Al final la solución buena es usar lo que he puesto arriba o usar la forma vieja de Tprinter que para mi funciona perfecta ...

Continue the discussion