conservar la impresora por defecto .

conservar la impresora por defecto .

Postby mastintin » Thu May 05, 2016 1: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
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: conservar la impresora por defecto .

Postby karinha » Thu May 05, 2016 2:09 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7801
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: conservar la impresora por defecto .

Postby mastintin » Thu May 05, 2016 2: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. :(
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: conservar la impresora por defecto .

Postby karinha » Thu May 05, 2016 3:02 pm

Maybe:

Code: Select all  Expand view

   // Guarde el nombre:
   sPrinterName:=PRNGETNAME()
 
   Después:
 
   SetDefaultPrinter(  sPrinterName )
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7801
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: conservar la impresora por defecto .

Postby AngelSalom » Thu May 05, 2016 3:03 pm

Siguiendo con interés ... :| :|
Angel Salom
Visionwin Software - https://www.visionwin.com
------------------------------------------------------------
fwh 19.05 - harbour 3.2 - bcc 7.4
User avatar
AngelSalom
 
Posts: 727
Joined: Fri Oct 07, 2005 7:38 am
Location: Benicarló (Castellón ) - España

Re: conservar la impresora por defecto .

Postby karinha » Thu May 05, 2016 3:06 pm

Ó,

Code: Select all  Expand view

   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
User avatar
karinha
 
Posts: 7801
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: conservar la impresora por defecto .

Postby mastintin » Thu May 05, 2016 3: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: Select all  Expand view


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

 
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm

Re: conservar la impresora por defecto .

Postby karinha » Thu May 05, 2016 6:06 pm

Master, acá funcionó...

Code: Select all  Expand view

#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
User avatar
karinha
 
Posts: 7801
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: conservar la impresora por defecto .

Postby mastintin » Fri May 06, 2016 5: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 :D .
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: Select all  Expand view


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 ...
User avatar
mastintin
 
Posts: 1516
Joined: Thu May 27, 2010 2:06 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 78 guests