Página 1 de 1
Imprimir na Vertical
Enviado: 17 Mar 2010 17:24
por locio
Será que alguem pode me ensinar como imprimir uma pagina parte na horizontal e parte na vertical. Tipo contracheque que tem os valores de vantagem e desconto na horizontal e o local de assinatura na vertical.
Tenho utilizado o programa de teste da classe win32prn() desse forum (função prnTeste), que tem me ajudado muito mas não tem esse tipo de exemplo.
Lócio
Re: Imprimir na Vertical
Enviado: 18 Mar 2010 11:10
por gvc
Olhei os exemplos e a documentação disponível da classe WIN32PRN e não encontrei nada.
Mesmo a instrução para imprimir em modo paisagem é para atuar na folha toda e não em parte dela.
Vamos esperar que algum dos colegas que estudam o código fonte do [x]Harbour possam achar alguma resposta.
Só para constar, eu tenho isso em relatório usando FW e já tive que fazer usando PCL (faz tempo).
Mas agora ficou tb a minha curiosidade se isso que vc quer é possível. Aguardamos.
Re: Imprimir na Vertical
Enviado: 18 Mar 2010 21:46
por carlos_dornelas
Por que não usa a hbprinter, que acompanha a minigui? é só usar o angle 90.
Antonio Carlos
Re: Imprimir na Vertical
Enviado: 20 Mar 2010 23:26
por sygecom
Para impirmir na VERTICAL é só deixar a impressão normal que ela sempre sai na Vertical, agora para imprimir na Horizoltal é só usar assim:
oPrinter:Landscape:= .T.
Ex:
Código: Selecionar todos
*****************************************************************
Function Imprime( cArq, tamrel ,cPrinter, cCopias, )
*****************************************************************
local cTexto, nLinhas, nA, cLinha, oBMP, cLine_temp, nFileHandle, cLine
#ifdef __XHARBOUR__
local oPrinter := win32prn():New(cPrinter)
#else
local oPrinter := win_prn():New(cPrinter)
#endif
cText := memoread( cArq )
//nFileHandle := FOpen( cArq )
oPrinter:Landscape:= .T.
oPrinter:FormType:= 9
oprinter:SetPrintQuality(-1) // qualidade da impressão
oPrinter:Copies:=1
IF !oPrinter:Create()
Fim_Run()
MsgStop("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar se a Impressora esta Ligada.","Aviso do Sistema")
return NIL
else
IF !oPrinter:StartDoc("Impressao Pelo Sistema SAGI")
Fim_Run()
MsgStop("ATENÇÃO !!! Não foi possivel Iniciar a Impressão, Favor Verificar a Impressora","Aviso do Sistema")
Return NIL
endif
FOR TT=1 TO 2
oPrinter:newline()
NEXT
oPrinter:SetFont("Courier New",13,{3,-50},0,.F.,.F.) // Comprimida
nLines2 := 190
oPrinter:Bold(0) // Normal
nLines := mlcount( cText, nLines2 )
for nA := 1 to nLines
cLine := memoline( cText, nLines2, nA, 1, .F. )
IF Left(AllTrim( cLine ), 1 ) == Chr( 15 ) .or. Left( AllTrim(cLine), 1 ) == Chr( 18 )
loop
ENDIF
If Left(AllTrim(cLine),1)==Chr(12) //SALTO DA PAGINA
oPrinter:NewPage()
FOR TT=1 TO 2
oPrinter:newline()
NEXT
endif
oPrinter:TextOut( cLine, .T. )
oPrinter:Bold(0) // Normal
if (oPrinter:MaxRow()-2 ) <= oPrinter:Prow()
oPrinter:NewPage()
FOR TT=1 TO 2
oPrinter:newline()
NEXT
endif
next
oPrinter:EndDoc()
oPrinter:Destroy()
ENDIF
RETURN NIL
Re: Imprimir na Vertical
Enviado: 22 Mar 2010 21:35
por sygecom
Viajei na batatinha, imprimir na Vertical é outros quinhentos...
Re: Imprimir na Vertical
Enviado: 22 Mar 2010 23:25
por alxsts
Olá!
Não sei qual é a impressora... Não seria possível usar PCL (Printer Command Language)? Pesquise no manual dela.
Como você trabalha com [x]Harbour pose ser que o Crystal Reports te ajude. Tinha gente que acessava ele do Clipper...
Re: Imprimir na Vertical
Enviado: 23 Mar 2010 08:10
por Toledo
Olá a todos!
Em uma das mensagens acima o Antonio Carlos falou da HBPrinter, que tem recursos semelhantes a Win32PRN, onde você pode definir o ângulo de impressão de uma fonte de letra.
Código: Selecionar todos
DEFINE FONT "FonteVertical" NAME "Arial" SIZE 6 ANGLE 90
@ 10,11 say "FAZENDO UM TESTE" FONT "FonteVertical" TO PRINT
Abraços,
Re: Imprimir na Vertical
Enviado: 05 Abr 2010 15:23
por locio
Estou tentando testar mas ainda não consigui. Será que vc pode postar um exemplo completo. Que mostre o local de definição da fonte e da print. ou mesmo como seria definida a fonte usando o comando: oPrinter:SetFont().
No teste que eu tentei fazer deu "Syntax error at ´font´"
Lócio
Re: Imprimir na Vertical
Enviado: 05 Abr 2010 18:55
por Toledo
Atenção: o exemplo que passei é referente a HBPrinter da MiniGui e não Win32prn.
No link abaixo tem o download da HBPrinter:
http://www.hmgextended.com/files/CONTRIB/
Abraços,