Ou de várias formas parecidas, mas sempre retorna -2. No site não indica o que significa -2, mas o fato é que não estou conseguindo o que quero: aumentar o tamanho da fonte na impressão.
Ok, então neste caso a função Wvt_SetFont() não vai lhe servir e nos exemplos que você passou usando SetFont() você tem que colocar o objeto criado na classe de impressão (Win_prn() ou Win32Prn()).
- Mova a linha 3 do seu código para a linha 12.
- Retire o espaço que existe entre o objeto e a função, por exemplo oPrn :Create() ficaria assim oPrn:Create(). Faça o mesmo com as demais funções.
Veja que o parâmetro 5 se for .T. imprime Underline, e o parâmetro 6 se for .T. imprime Itálico
Acho que este exemplo pode também ajudar: c:\hb32\contrib\hbwin\tests\testprn.prg. Você pode compilar este exemplo assim: hbmk2 testprn -lhbwin e ver o resultado de acordo com a impressora que usar.
Destaco uma nota constante neste exemplo sobre Underline. Veja:
Notice: escreveu:UNDERLINE only prints correctly if there is a blank line after it. This is because of :LineHeight and the next line printing over top of the underline. To avoid this happening you can to alter :LineHeight or use a smaller font, or use :SetBkMode(WIN_TRANSPARENT)
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7 (Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Mas isto tem um problema: quando o texto a ser impresso é sublinhado, ele sublinha também o espaço anterior. Existe alguma forma de centralizar efetivamente?
Olá Pessoal, sou novato no harbour e estou fazendo um cupom não fiscal para um cliente
1 - sai certo porem claro e letra pequena (cupom2) oPrinter:SetFont( 'Courier New', 6.5, 0 ) // CUPOM2
2 - sai desalinhado (cupom) oPrinter:SetFont( 'Times-Roman', 7, 0 ) // CUPOM
eu teria que usar o setpos()... como usar nos valores....
Function ImpCo9()
local oPrinter,linha,desenho,n_x
local cFileName, oWin32Bmp,nome_impressora,xcopia
DMPAPER_A4:=80;zpz:=1
nome_impressora := GetDefaultPrinter()
// Create printer object and configure print job
oPrinter := Win32Prn():new( nome_impressora )
oPrinter:landscape := .f.
oPrinter:formType := DMPAPER_A4
oPrinter:copies := 1
// Create device context
IF .NOT. oPrinter:create()
Alert( "Cannot create device context" )
QUIT
ENDIF
// Create print job
if ! oPrinter:startdoc( "Emissão de Pedido" ) // nome do arquivo para impressao
Alert( "Cannot create document" )
QUIT
ENDIF
linha := 1;corta:=chr(27)+chr(119)
desenho := 320
oPrinter:newline()
oPrinter:setfont('GungsuhChe',12,0)
oPrinter:setprc( oPrinter:Prow() , Pcol() + 7 )
oPrinter:textout( wfanta )
oPrinter:newline()
oPrinter:newline()
oPrinter:newline()
oPrinter:setfont('1FontB11',6,{1,22},0 ,.F.,.F.)
oPrinter:textout( 'Venda..: '+strzero(wnota,6)+' Emissao: '+dtoc(wemissao) )
oPrinter:newline()
sele cliente
seek wcliente
wcli:=if(zpz=0,'Cliente: '+trim(wnomecli)+' - CPF: '+transform(cliente->CGC,'@R 999.999.999-99'),'Cliente: * * * Consumidor * * * ')
oPrinter:textout( wcli )
oPrinter:NewLine()
//Printer:SetFont( 'Courier New', 6.5, 0 ) // CUPOM2
oPrinter:SetFont( 'Times-Roman', 7, 0 ) // CUPOM
oPrinter:TextOut( REPL( '-', 80 ) )
oPrinter:NewLine()
oPrinter:TextOut( ' QTDE D E S C R I C A O C.UNIT. C.TOTAL' )
oPrinter:NewLine()
oPrinter:TextOut( REPL( '-', 80 ) )
sele movime
seek wnota
do while NOTA = wnota
witem:= SAIDA * PRECO
sele produtos
seek movime->CODIGO
wpro:= left(trim(DESCRI)+repli('.',35),33)
sele movime
wlin:=str(SAIDA,4,1)+' '+wpro+' '+transform(PRECO,'@E 999.99')+spac(4)+transform(witem,'@E 9999.99')
oPrinter:newline()
oPrinter:TextOut( wlin )
skip
enddo
oPrinter:newline()
oPrinter:TextOut( REPL( '-', 83 ) )
oPrinter:CharSet( 0 ) //Reset default charset
oPrinter:Bold( WIN_FW_EXTRABOLD )
wlin:=spac(68)+'Total Geral.: '+transform(wvalor,'@E 9,999.99')
oPrinter:newline()
oPrinter:TextOut( wlin )
oPrinter:Bold( WIN_FW_DONTCARE )
oPrinter:newline()
oPrinter:TextOut( REPL( '-', 83 ) )
oPrinter:newline()
oPrinter:TextOut( '------------------------------ Volte Sempre -----------------------------' )
oPrinter:newLine()
oPrinter:TextOut("chr(27)+chr(119)")
oPrinter:endDoc()
oPrinter:destroy()
retu