11 Abr 2018 12:03
11 Abr 2018 15:30
#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
11 Abr 2018 17:10
11 Abr 2018 17:24
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
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *>
11 Abr 2018 18:21