bem simples fazer isso , tenho essa situacao aqui em casa, tenho uma impressora conectada diretamente no meu hub, apos a impressao em arquivo comando a impressao
FUNCTION IMP_TELA
parameters boxtop, boxleft, boxbot, boxright, filename, namereport
Local i, nPrn, oPrn, nMaxLen := 0, aPNomes := {}
Local cPrinter := "", aPrn := Win_PrinterList( .t., .f. )
LOCAL vCombo1 := 1
LOCAL oPanel1, oLabel1, oRichedit1, oCombo1, oOwnerbutton4, oOwnerbutton1, oOwnerbutton2, oOwnerbutton3
*** LOCAL oPanel1, oLabel1, oRichedit1, oCombo1, oButton1, oButton2, oButton3, oButton4
private handle, topline, botline, leftedge, rightedge, linelength
private nbrlines, lineoffset, kounter, endof_file
private last_key, standard, position
private iscrs
Private vRichedit1 := MemoRead(filename)
Private nsizefont := -13
PREPARE FONT oFont NAME "COURIER NEW" WIDTH 0 HEIGHT 0 WEIGHT -13
Private oFont2 := HFont():Add( "Courier New",0,-13 )
if (PCount() < 5)
return ""
endif
if (!file(filename))
return .F.
endif
* If Empty( aPrn )
* Hb_Alert( "Nenhuma impressora Instalada" )
* Return ( cPrinter )
* Endif
for i=1 to len(aPrn)
IF aPrn[i,1] = WIN_PRINTERGETDEFAULT()
vCombo1:=i
exit
ENDIF
next
nCor:= 16777215
INIT DIALOG oDlg TITLE namereport ;
AT 0,0 SIZE hwg_GETDESKTOPWIDTH()-170,hwg_GETDESKTOPHEIGHT()-170 NOEXIT ;
STYLE WS_POPUP+WS_CAPTION+WS_SYSMENU+WS_SIZEBOX+DS_CENTER
Thisform := oDlg
@ 0,0 PANEL oPanel1 SIZE 1007,533
@ 502,18 SAY oLabel1 CAPTION "Impressora:" OF oPanel1 SIZE 72,19 ;
FONT HFont():Add( '',0,-13,400,,,)
@ 576,17 GET COMBOBOX oCombo1 VAR vCombo1 ITEMS aPRN OF oPanel1 SIZE 413,23
If !Empty( aPrn )
@ 8,4 OWNERBUTTON oOwnerbutton4 OF oPanel1 SIZE 55,44 ON CLICK {|| Win_PrintFileRaw(Alltrim(aPrn[vCombo1,1]),FileName,namereport) } FLAT BITMAP "rel_print" FROM RESOURCE
endif
* @ 8,4 OWNERBUTTON oOwnerbutton4 OF oPanel1 SIZE 55,44 ON CLICK {|| faz_impressao(FileName,namereport) } FLAT BITMAP "rel_print" FROM RESOURCE
* TEXT '' ;
* COORDINATES 0, 0, 0, 0 ;
* BITMAP 'BITMAP\rel_print.bmp' TRANSPARENT COORDINATES 0, 0, 0, 0
*
@ 72,4 OWNERBUTTON oOwnerbutton2 OF oPanel1 SIZE 55,44 ON CLICK {|| ZOOMIMP2(oRichedit1,'+',nsizefont) } FLAT BITMAP "rel_zoom_in" FROM RESOURCE
* ON CLICK {|| ZOOMIMP2(oRichedit1,'-',nsizefont) } ;
* TEXT '' ;
* COORDINATES 0, 0, 0, 0 ;
* BITMAP 'rel_zoom_in.bmp' TRANSPARENT ;
* COORDINATES 0, 0, 0, 0
*
@ 136,4 OWNERBUTTON oOwnerbutton3 OF oPanel1 SIZE 55,44 ON CLICK {|| ZOOMIMP2(oRichedit1,'-',nsizefont) } FLAT BITMAP "rel_zoom_out" FROM RESOURCE
* ON CLICK {|| ZOOMIMP2(oRichedit1,'-',nsizefont) };
* TEXT '' ;
* COORDINATES 0, 0, 0, 0 ;
* BITMAP 'rel_zoom_out.bmp' TRANSPARENT ;
* COORDINATES 0, 0, 0, 0
*
@ 201,4 OWNERBUTTON oOwnerbutton1 OF oPanel1 SIZE 55,44 ON CLICK {|| oDlg:close() } FLAT BITMAP "rel_exit" FROM RESOURCE
* ON CLICK {|| oDlg:close() } ;
* TEXT '' ;
* COORDINATES 0, 0, 0, 0 ;
* BITMAP 'rel_exit.bmp' TRANSPARENT ;
* COORDINATES 0, 0, 0, 0
*
* @ 305,2 BITMAP oBitmap1 ;
* SHOW HBitmap():AddFile('sgchb\rel_print.bmp') STRETCH 0
* OF oPanel1 TRANSPARENT SIZE 54,50
* @ 12,13 BUTTON oButton3 CAPTION "&Imprimir" OF oPanel1 SIZE 98,32 ;
* STYLE WS_TABSTOP ;
* ON CLICK {|| Win_PrintFileRaw(Alltrim(aPrn[vCombo1,1]),FileName,namereport) }
*
* @ 126,13 BUTTON oButton1 CAPTION "- Zoom" OF oPanel1 SIZE 98,32 ;
* STYLE WS_TABSTOP ;
* ON CLICK {|| ZOOMIMP2(oRichedit1,'-',nsizefont) }
*
* @ 238,13 BUTTON oButton2 CAPTION "+ Zoom" OF oPanel1 SIZE 98,32 ;
* STYLE WS_TABSTOP ;
* ON CLICK {|| ZOOMIMP2(oRichedit1,'+',nsizefont) }
*
* @ 352,13 BUTTON oButton4 CAPTION "&Sair" OF oPanel1 SIZE 98,32 ;
* STYLE WS_TABSTOP ;
* ON CLICK {|| oDlg:close() }
@ 5,51 RichEdit oRichedit1 TEXT vRichedit1 SIZE HWG_GETDESKTOPWIDTH()-175,HWG_GETDESKTOPHEIGHT()-225;
OF oDLG ID ID_TEXTO;
COLOR 0 BACKCOLOR 16777215 ;
ON Getfocus {|| TopoDoc(oRichedit1)};
STYLE WS_TABSTOP+WS_HSCROLL+WS_VSCROLL+ES_LEFT+ES_MULTILINE+ES_READONLY;
FONT oFont2
ACTIVATE DIALOG oDlg CENTER
RETURN oDlg:lresult
***********************
static FUNCTION topodoc(oRichedit1)
***********************
Local nPos
npos := HWG_SendMessage( oRichedit1:handle, EM_GETSEL, 0, 0 )
keyb_event(VK_HOME,.T.)
HWG_SendMessage(oRichedit1:handle,EM_SETSEL,HWG_Loword(npos),HWG_Loword(npos))
return .t.
******************************
static FUNCTION ZOOMIMP2(oEdit,csize)
******************************
nsizefont := nsizefont + iif(csize='-', 1 , -1)
nsizefont := iif(csize='-',min(-9,nsizefont),;
max(-25,nsizefont))
oFont2 := HFont():Add( "Courier New",0,nsizefont )
HWG_sendMessage(oEDiT:Handle,WM_SETFONT ,oFont2:handle,0 )
oEdIT:refresh()
RETURN .T.
******************************
static FUNCTION faz_impressao(Filename, namereport)
******************************
LOCAL hDc:=''
WIN_PRINTDLGDC( @hdc, , , )
*if !(EMPTY(hDc))
* Win_PrintFileRaw(hDc,FileName,namereport)
* Win_PrintFileRaw(Alltrim(aPrn[vCombo1,1]),FileName,namereport)
*endif
return nil