Ola!
Eu ainda não resolvi de forma definitiva como fica a configuração na hora de informar o tamanho da página.
Se é papel continuo, como configurar ? No modo raw fica blz.
Saudações,
Itamar M. Lins Jr.
winprn cortando papel na bematech
Moderador: Moderadores
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
winprn cortando papel na bematech
Ola!
Eu já tinha postado aqui...Parece que continua na mesma.Imprime blz na impressora virtual do windows, mas na bematech ela corta.
Saudações,
Itamar M. Lins Jr.
Eu já tinha postado aqui...Parece que continua na mesma.Imprime blz na impressora virtual do windows, mas na bematech ela corta.
Código: Selecionar todos
**********************************
Function PrintTH(cArq,cPrint)
**********************************
*
*
Local oPrn, aPrn:=WIN_PRINTERLIST(), n := 0
hb_default(@cPrint,win_PrinterGetDefault())
if empty(aPrn)
hwg_Msginfo('Não há impressoras instaladas')
return .f.
endif
If cPrint == Nil
cPrint := win_PrinterGetDefault()
EndIf
cText := memoread(cArq)
nLinh := mlcount(cText)
nTL := (nLinh/5)
oPrn := win_prn():New(cPrint)
oPrn :LandScape := .F.
oPrn :FormType := WIN_DMPAPER_USER
oPrn :PaperLength := 11*25.4*nTL
oPrn :PaperWidth := 3*25.4*10
oPrn :Copies := 1
if !oPrn:Create()
hwg_Msginfo("Não foi criado documento.")
Return nil
EndIf
if !oPrn:StartDoc("Cozinha: "+cArq)
hwg_Msginfo("Erro na Impressora.")
Return nil
EndIf
oPrn:SetColor( HB_WIN_RGB_BLACK )
oPrn:SetFont( "Lucida Console", 15, { 4, -70 } )
For n := 1 to nLinh
oPrn:Textout(memoline(cText,,n),.t.)
Next
oPrn:NewLine()
oPrn:NewLine()
oPrn:EndDoc()
Return .T.
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- rubens
- Colaborador

- Mensagens: 1520
- Registrado em: 16 Ago 2003 09:05
- Localização: Nova Xavantina - MT
winprn cortando papel na bematech
Corta na qtde de itens ou na largura ?
Rubens
Rubens
"Eu e minha casa servimos ao Senhor e você
"
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
winprn cortando papel na bematech
Veja se ajuda:
Saudações.
Código: Selecionar todos
FUNCTION PrintWin( cPrinter, cArq )
LOCAL oPrn := Nil, aPrn := Win_PrinterList( .T. , .F. ), __nColFixed, ;
cLinha, oElemento, lImp := .F.
cPrinter := hb_DefaultValue( cPrinter, Win_PrinterGetDefault() )
cArq := hb_DefaultValue( cArq, "" )
IF Empty( cArq )
MsgStop( "Arquivo de impressão deve ser informado", "Erro" )
RETURN .F.
ENDIF
IF Empty( aPrn )
MsgStop( "Não há impressoras instaladas", "Erro" )
RETURN .F.
ENDIF
FOR EACH oElemento IN aPrn
IF Upper( oElemento[1] ) = Upper( cPrinter )
//oElemento[1] //Nome da impressora
//oElemento[2] //Porta onde a impressora está ligada
lImp := .T.
ENDIF
NEXT
IF ! lImp
MsgStop( "Impressora " + cPrinter + " não está instalada." + ;
hb_Eol() + "Entre em contato com o helpdesk", "Erro" )
RETURN Nil
ENDIF
oPrn := Win_Prn():New( cPrinter )
oPrn:FormType := WIN_DMPAPER_USER
oPrn:PaperWidth := 3 * 26.4 * 10
oPrn:Copies := 1
IF ! oPrn:Create()
MsgStop( "Não foi criado documento.", "Erro de Impressão" )
oPrn:Destroy()
RETURN Nil
ENDIF
IF ! oPrn:StartDoc( "DocPrint" )
MsgStop( "Erro na Impressora.", "Erro de Impressão" )
oPrn:Destroy()
RETURN Nil
ENDIF
oPrn:SetFont( "Lucida Console", 8, 0 )
__nColFixed := 0
PrintCabec( .T. , oPrn, hb_DirBase() + "fazenda.bmp" )
FT_FUSE( cArq )
DO WHILE ! FT_FEOF()
cLinha := FT_FREADLN()
cLinha := IF( Empty( cLinha ), " ", cLinha )
oPrn:SetPos( __nColFixed )
oPrn:Textout( cLinha, .T. )
FT_FSKIP()
ENDDO
FT_FUSE()
PrintCabec()
oPrn:EndDoc()
oPrn:Destroy()
oPrn := Nil
RETURN .T.
FUNCTION PrintCabec( lInicio, oPrn, cBitFile )
LOCAL __nLinha := 50, __nColuna := 100, __nHandleFile, _i, I
STATIC __oBMP
STATIC __nWidth
STATIC __nHeight
lInicio := hb_DefaultValue( lInicio, .F. )
cBitFile := hb_DefaultValue( cBitFile, "" )
IF lInicio
IF ! Empty( cBitFile ) .AND. __oBMP = Nil
fi_Initialise()
__nHandleFile := fi_Load( FIF_BMP, cBitFile, BMP_DEFAULT )
__nWidth := fi_GetWidth( __nHandleFile )
__nHeight := fi_GetHeight( __nHandleFile )
fi_DeInitialise()
ENDIF
oPrn:SetPrc( 0, 0 ) // 1, 0
oPrn:SetPrc( oPrn:pRow(), 4 )
FOR I := 1 TO 10
oPrn:Textout( " ", .T. )
NEXT
IF ! Empty( cBitFile )
IF hb_vfExists( cBitFile )
IF __oBMP = Nil
__oBMP := Win_BMP():New()
IF !__oBMP:loadFile( cBitFile )
RETURN Nil
ENDIF
//oBmp:Draw( oPrn, { nColuna, nLinha, nWidth, nHeight } )
/* Note: Can also use this method to print bitmap */
//__oBmp:Rect := { __nColuna, __nLinha, __nWidth, __nHeight }
//oPrn:DrawBitmap( __oBmp )
ENDIF
__oBMP:Draw( oPrn, { __nColuna, __nLinha, __nWidth, __nHeight } )
ENDIF
ENDIF
ELSE
IF __oBMP != Nil
__oBMP:Destroy()
__nWidth := Nil
__nHeight := Nil
__oBMP := Nil
ENDIF
ENDIF
RETURN Nil
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
winprn cortando papel na bematech
Ola!
É um velho problema. Corta no comprimento do papel. É bobina! tem que imprimir tudo. Quando chega no tamanho da folha A4 corta.
Eu penso que é um erro da classe winprn do Harbour. Pois no ACBR e outros fica ok. Agora pq no XPS (visualizador) fica OK eu também não sei.
Não quero ficar mexendo na impressora Bematech para mudar o papel.
Saudações,
Itamar M. Lins Jr.
É um velho problema. Corta no comprimento do papel. É bobina! tem que imprimir tudo. Quando chega no tamanho da folha A4 corta.
Eu penso que é um erro da classe winprn do Harbour. Pois no ACBR e outros fica ok. Agora pq no XPS (visualizador) fica OK eu também não sei.
Não quero ficar mexendo na impressora Bematech para mudar o papel.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
winprn cortando papel na bematech
Ola!
Kapiaba
Saldações,
Itamar M. Lins Jr.
Kapiaba
Tô mandando um rel. com mais de 80 linhas. Esse seu exemplo, (que eu já tinha visto) multiplica por *10... Tem que entender o código. Ai é que vai ficar menor mesmo.oPrn:PaperWidth := 3 * 26.4 * 10
Saldações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.