Ola amigos,
Estou alterando meu sistema de XHB 1.10+WVT+HGWUI para HB34+HWGUI, e estou enroscado com a parte da seleção de impressoras, tenho ela em modo carácter, mais com HWGUI estou enroscado.
Alguém poderia me disser como fazer, o teria algo ja pronto que poderia dispor um exemplo aqui no forum.
Grato.
Painel de impressoras com HWGUI
Moderador: Moderadores
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Painel de impressoras com HWGUI
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
Painel de impressoras com HWGUI
Segue exemplo:
cImpressora := Impressoras_SMF()
cImpressora := Impressoras_SMF()
Código: Selecionar todos
#include "common.ch"
#include "hwgui.ch"
#include "hbclass.ch"
#include "hbthread.ch"
THREAD STATIC aImpressorasSMF := {}
THREAD STATIC oThisformImp
FUNCTION Impressoras_SMF()
LOCAL cImpressora := ""
LOCAL oElemento, oDlg, nListImp:=1, oIconPrint, oLabel1, oButtonex1
oIconPrint := HIcon():AddFile("P:\GERAL\HARBOUR\IPRINTER2.ICO")
IF hb_FileExists( hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
cImpressora := hwg_GetIni( 'CONFIGURACAO', 'Impressora' , '', hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
ENDIF
aPrn := Win_PrinterList(.T., .F.)
IF Len( aImpressorasSMF ) = 0
FOR EACH oElemento IN aPrn
IF Empty( cImpressora )
IF oElemento[1] = Win_PrinterGetDefault()
nListImp := oElemento:__enumIndex()
ENDIF
ELSE
IF oElemento[1] = cImpressora
nListImp := oElemento:__enumIndex()
ENDIF
ENDIF
aAdd( aImpressorasSMF, oElemento[1] )
hwg_DoEvents()
NEXT
ELSE
FOR EACH oElemento IN aImpressorasSMF
IF oElemento = cImpressora
nListImp := oElemento:__enumIndex()
ENDIF
NEXT
ENDIF
IF ! Empty( cImpressora )
IF hb_aScan( aImpressorasSMF, cImpressora ) = 0
nListImp := hb_aScan( aImpressorasSMF, Win_PrinterGetDefault() )
ENDIF
ENDIF
INIT DIALOG oDlg TITLE "Seleção das Impressoras" ;
AT 0, 0 ;
SIZE 643,330 ;
FONT HFont():Add( 'Tahoma',0,-13,400,1252,,) ;
ICON oIconPrint ;
CLIPPER ;
NOEXIT ;
STYLE WS_POPUP + WS_CAPTION + WS_SYSMENU + DS_CENTER ;
ON INIT {|| oListImp:SetFocus()}
oThisformImp := oDlg
* SET KEY 0,VK_ESCAPE TO hwg_EndDialog()
@ 014,017 SAY oLabel1 CAPTION "Impressoras Instaladas (Informe a impressora para imprimir)" SIZE oDlg:nWidth,18
@ 012,042 GET LISTBOX oListImp ;
VAR nListImp ;
ITEMS aImpressorasSMF ;
SIZE 618,228 ;
ON DBLCLICK {|| SelecionaImpSMF( @cImpressora ) }
@ 014,280 BUTTONEX oButtonex1 ;
CAPTION "Imprimir" ;
SIZE 110,40 ;
ICON oIconPrint:handle ;
STYLE BS_CENTER + WS_TABSTOP ;
ON CLICK {|| SelecionaImpSMF( @cImpressora )}
@ 137,287 SAY oLabel2 CAPTION "Impressora padrão:" SIZE 116,18
@ 258,287 SAY oLabel3 CAPTION Win_PrinterGetDefault() ;
SIZE oDlg:nWidth,18
ACTIVATE DIALOG oDlg
oIconPrint:Release()
IF Empty( cImpressora )
cImpressora := Win_PrinterGetDefault()
ENDIF
IF ! Hb_FileExists( hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
hwg_WriteIni( 'MAIN' , 'Descricao' , 'IniPrint', hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
hwg_WriteIni( 'MAIN' , 'Versao' , "1.0", hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
hwg_WriteIni( 'CONFIGURACAO', 'Impressora' , cImpressora, hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
ELSE
hwg_WriteIni( 'CONFIGURACAO', 'Impressora' , cImpressora, hb_GetEnv("TEMP") + [\] + "INIPRINTER.INI" )
ENDIF
RETURN cImpressora
FUNCTION SelecionaImpSMF( cImpressora )
LOCAL nPos
nPos := oThisformImp:oListImp:Value
cImpressora := oThisformImp:oListImp:aItems[nPos]
oThisformImp:Close()
RETURN cImpressora
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Painel de impressoras com HWGUI
Simões,
Muito obrigado.
:-Y :-Y :-Y
Muito obrigado.
:-Y :-Y :-Y
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Painel de impressoras com HWGUI
Ola,
Não sei se existe algo para imprimir PDF direto pelo HWGUI, mais vai aqui minha dica...
Não sei se existe algo para imprimir PDF direto pelo HWGUI, mais vai aqui minha dica...
Código: Selecionar todos
FUNCTION TESTE_DANFE_IMPRIMIR()
LOCAL oFile, oFileList
PRIVATE cComando, cIMPRESSORA:=[]
cDESTINO:='C:\NFe\NFe20180306'
Impressoras_SMF(@cIMPRESSORA)
HWG_MSGINFO(cIMPRESSORA)
oFileList := Directory( ALLTRIM(cDESTINO)+[\*.PDF], [D] )
FOR EACH oFile IN oFileList
cComando := [C:\Sumatra\sumatrapdf.exe -print-to "]+cIMPRESSORA+[" -silent ]+ALLTRIM(cDESTINO)+[\]+ALLTRIM(oFile[ F_NAME ])
xhbrun( cComando, .F. )
NEXT
RETURN NIL
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *>
FUNCTION xhbrun( cCommand, lWait, lBackG )
LOCAL hIn, hOut, hProc, nRet
hProc := HB_OpenProcess(cCommand, @hIn, @hOut, @hOut, lBackG)
IF hProc > 0
nRet := HB_ProcessValue(hProc, lWait)
ENDIF
FCLOSE(hProc)
FCLOSE(hIn)
FCLOSE(hOut)
RETURN nRet
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *>
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Painel de impressoras com HWGUI
eu estou usando assim , ta funcionando normal
WAPI_ShellExecute( NIL, "print", cPrefixo + "_8_AutorizadoPDF.PDF ", NIL,, NIL )
em testes sem a impressora instalada ele ate chama a instalação do wondows
WAPI_ShellExecute( NIL, "print", cPrefixo + "_8_AutorizadoPDF.PDF ", NIL,, NIL )
em testes sem a impressora instalada ele ate chama a instalação do wondows
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
