Establecer impresora predeterminada

Establecer impresora predeterminada

Postby RDFernandez » Sat Feb 08, 2014 2:34 pm

Estimados amigos:
Como hago para poner una impresora predeterminada al inicio del programa y dejar la anterior al salir.
Intento poner una impresora PDF al incio del programa, ya que imprimir a una no lo hace.

Print oPrn Name "Algo"To "PDFCreator" ....> no me funciona

Muchas gracias. Saludos.
Gracias, Saludos.
Ruben Dario Fernandez
FWH 14.02 Borland, Harbour.
SublimeText.
RDFernandez
 
Posts: 23
Joined: Sun Mar 24, 2013 3:25 pm

Re: Establecer impresora predeterminada

Postby informaticaeloy » Sun Feb 09, 2014 1:06 am

Yo también empecé a intentar algo así, y al final he optado por poner en todas mis impresiones:

Code: Select all  Expand view

         PRINT OPRN NAME "Factura " from user
         if Empty(oPrn:hDC)
            MsgStop("La impresora no está lista o impresión cancelada","Error !!!")
            select 1
            return nil
         endif

 


y así con el "from user" puedes seleccionar justo antes de imprimir donde lo quieres hacer.

Un saludo.
Windows 10 + FWH 20.08 + BCC 7.4 + Harbour 3.2.0 + PSPad 5.0.3
User avatar
informaticaeloy
 
Posts: 118
Joined: Fri Dec 20, 2013 10:39 am
Location: Zaragoza, España

Re: Establecer impresora predeterminada

Postby MarioG » Thu Feb 13, 2014 12:44 am

Ruben;
Si compilas con xHarbour, tenes las siguientes funciones (ignoro si las trae Harbour, aunque supongo que si):
GetPrinters() - retorna un array de las impresoras disponibles, o la funcion FW:
aGetPrinters()
tambien dispones de (xHarbour):
GetDefaultPrinter() (para retener el nombre al inicio de tu app)

luego, con ello podés establecer la impresora por defecto mediante la funcion de FW
SetPrintDefault()
Sets the specified printer as the default printer.
Syntax:
SetPrintDefault( <cModel> ) --> nil

Parameters:
<cModel> The name of the new default printer.

Returns:
Nil

Source Code:

SOURCE\CLASSES\PRINTER.PRG

Repitiendo el proceso al finalizar tu programa con la que te devolvio la impresora por defecto
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Establecer impresora predeterminada

Postby RDFernandez » Thu Feb 13, 2014 3:07 am

Gracias Mario:

He intentado de todas formas.
Compilo con Harbour y aGetprinters funciona, pero cuando quiero dejar esa impresora como predeterminada, no lo hace.

Seguiré buscando, gracias.
Gracias, Saludos.
Ruben Dario Fernandez
FWH 14.02 Borland, Harbour.
SublimeText.
RDFernandez
 
Posts: 23
Joined: Sun Mar 24, 2013 3:25 pm

Re: Establecer impresora predeterminada

Postby colthop » Thu Feb 13, 2014 7:08 am

Hola RDFernandez:

En vez de hacer predeterminada la impresora lo que puedes hacer es imprimir en la impresora que quieres siempre.

Por ejemplo si utilizas la clase PRINT:

PRINT oPrn TO zImpLis2

En donde zimplis2 es una variable pública con el nombre de la impresora sin blancos ni al principio ni al final.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: Establecer impresora predeterminada

Postby colthop » Thu Feb 13, 2014 7:19 am

Hola no había leído del todo tu post.

Yo básicamente lo que hago es lo que te he puesto antes y funciona si le quero poner nombre al listado es cuando hago un PREVIEW y lo hago así en vez de con NAME:

PRINT oPrn PREVIEW TITLE "Nombre Listado" TO zImpLis2

zimplis2 lo saco de hacer un selección de todas las impresoras instaladas con "zImpr = aGetPrinters()" y lo presento para que la elija.

Espero que te ayude a mi si me funciona desde hace mucho.

Un saludo

Carlos
Colt Hop ED, S.L.
Carlos Blas Fernández Domínguez
Tlfo: 645847093
E-Mail: carlos@colthop.es

Nunca se termina de aprender, por eso necesito siempre ayuda.
colthop
 
Posts: 505
Joined: Sat Apr 22, 2006 9:09 am
Location: Madrid - España

Re: Establecer impresora predeterminada

Postby jll-fwh » Wed Feb 19, 2014 12:13 am

Hola Ruben:

Usa la funcion:
Code: Select all  Expand view
PrnSetDefault( "aqui el nombre de la impresora", "" )


Así obtienes las impresoras instaladas:
Code: Select all  Expand view
aPrinters := aGetPrinters()            


Así la Impresora por Defecto:
Code: Select all  Expand view
cPrinter := PrnGetName()    


Un saludo
JLL
Libreria: FWH/FWH1109 + Harbour 5.8.2 + Borland C++ 5.8.2
Editor de Recursos: PellecC
ADA, OURXDBU
S.O: XP / Win 7 /Win10
Blog: http://javierlloris.blogspot.com.es/
e-mail: javierllorisprogramador@gmail.com
User avatar
jll-fwh
 
Posts: 408
Joined: Fri Jan 29, 2010 8:14 pm
Location: Meliana - Valencia

Re: Establecer impresora predeterminada

Postby karinha » Wed Feb 19, 2014 1:00 pm

Code: Select all  Expand view

METHOD New( cDocument, lUser, lPreview, cModel, lModal, lSelection, cFile ) CLASS TPrinter

   local aOffset
   local cPrinter

   DEFAULT cDocument  := "FiveWin Report" ,;
       lUser := .f., lPreview := .f., lModal := .f., lSelection := .f.

   if lUser

      ::hDC := GetPrintDC( GetActiveWindow(), lSelection, PrnGetPagNums() )

      if ::hDC != 0
         cModel = ::GetModel() + "," + ::GetDriver() + "," + ::GetPort()
      endif

   elseif cModel == nil  // Modified: 16/01/2014

      ::hDC  := GetPrintDefault( GetActiveWindow() )

      cModel = ::GetModel() + "," + ::GetDriver() + "," + ::GetPort()

      SetPrintDefault( cModel ) // NEW !!!  // 16/01/2014  Joao

   else

      cPrinter := GetProfString( "windows", "device" , "" )

      WriteProfString( "windows", "device", cModel )

      SysRefresh()

      PrinterInit()

      ::hDC := GetPrintDefault( GetActiveWindow() )

      SysRefresh()

      WriteProfString( "windows", "device", cPrinter  )

      SetPrintDefault( cPrinter ) // NEW !!!  Antonio Linares

   endif

   if ::hDC != 0
      aOffset    = PrnOffset( ::hDC )
      ::nXOffset = aOffset[ 1 ]
      ::nYOffset = aOffset[ 2 ]
      ::nOrient  = ::GetOrientation()
   elseif ComDlgXErr() != 0
      MsgStop( "There are no printers installed!"  + CRLF + ;
               "Please exit this application and install a printer." )
      ::nXOffset = 0
      ::nYOffset = 0
   else
      ::nXOffset = 0
      ::nYOffset = 0
      ::nOrient  = DMORIENT_PORTRAIT
   endif

   ::cDocument = cDocument
   ::cModel    = cModel
   ::nPage     = 0
   ::nPad      = 0
   ::lMeta     = .f.
   ::lPreview  = lPreview
   ::lStarted  = .F.
   ::lModified = .F.
   ::lPrvModal = lModal

   if ! Empty( cFile ) .and. Lower( Right( cFile, 3 ) ) == "pdf"
      ::cFile   = cFile
      ::lMeta     = .t.
   elseif ::lPreview
      ::lMeta     = .t.
   endif

   if ! ::lMeta
      ::hDcOut = ::hDC
   else
      ::aMeta  = {}
      ::cDir   = GetEnv( "TEMP" )

      if Empty( ::cDir )
         ::cDir = GetEnv( "TMP" )
      endif

      if Right( ::cDir, 1 ) == "\"
         ::cDir = SubStr( ::cDir, 1, Len( ::cDir ) - 1 )
      endif

      if ! Empty( ::cDir )
         if ! lIsDir( ::cDir )
            ::cDir = GetWinDir()
         endif
      else
         ::cDir := GetWinDir()
      endif
   endif

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

Re: Establecer impresora predeterminada

Postby RDFernandez » Wed Feb 19, 2014 8:16 pm

Gracias, gracias amigos. Solucionado con un poco de todos.

Cambie lo que dice karinha y ademas hice..

claImpreAnterior := PrnGetName()

nImprePDF:= AScan(aPrinters, "PDF")
cLaImpre :=aPrinters[nImprePDF]
cLaImpre := xTrim(cLaImpre) (ltrim+rTrim)
SetPrintDefault( cLaImpre )

Saludos y gracias.
Gracias, Saludos.
Ruben Dario Fernandez
FWH 14.02 Borland, Harbour.
SublimeText.
RDFernandez
 
Posts: 23
Joined: Sun Mar 24, 2013 3:25 pm

Re: Establecer impresora predeterminada

Postby MarioG » Thu Feb 20, 2014 12:07 am

Que bueno que lo solucionaste!
QUE GRANDE ESTE FORO! :wink: :lol:
Resistencia - "Ciudad de las Esculturas"
Chaco - Argentina
User avatar
MarioG
 
Posts: 1380
Joined: Fri Oct 14, 2005 1:28 pm
Location: Resistencia - Chaco - AR

Re: Establecer impresora predeterminada

Postby RDFernandez » Thu Feb 20, 2014 12:18 am

Si Mario, es IMPONENTE.
Gracias a todos.
Gracias, Saludos.
Ruben Dario Fernandez
FWH 14.02 Borland, Harbour.
SublimeText.
RDFernandez
 
Posts: 23
Joined: Sun Mar 24, 2013 3:25 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 6 guests