Imprimir na Vertical

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

locio
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 27 Out 2006 14:21

Imprimir na Vertical

Mensagem 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
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Imprimir na Vertical

Mensagem 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.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
carlos_dornelas
Usuário Nível 3
Usuário Nível 3
Mensagens: 400
Registrado em: 25 Ago 2004 21:54

Re: Imprimir na Vertical

Mensagem por carlos_dornelas »

Por que não usa a hbprinter, que acompanha a minigui? é só usar o angle 90.

Antonio Carlos
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Imprimir na Vertical

Mensagem 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
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Imprimir na Vertical

Mensagem por sygecom »

Viajei na batatinha, imprimir na Vertical é outros quinhentos...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Re: Imprimir na Vertical

Mensagem 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...
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Imprimir na Vertical

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
locio
Usuário Nível 2
Usuário Nível 2
Mensagens: 98
Registrado em: 27 Out 2006 14:21

Re: Imprimir na Vertical

Mensagem 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
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Imprimir na Vertical

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Responder