Como imprimir logotipo?

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
momente
Usuário Nível 3
Usuário Nível 3
Mensagens: 496
Registrado em: 03 Mar 2005 11:53
Localização: São Carlos-SP
Contato:

Como imprimir logotipo?

Mensagem por momente »

Caros amigos do fórum,

Tenho um cliente que me pediu para criar uma duplicata tipo fatura, com o logotipo da empresa, ai vem:

- O que devo usar para esta proeza?]
- Uso a PageScript ou existe outra maneira com código puro?

Obrigado desde já! :D
Rogerio L. Momenté
Nada é tão perfeito que não possamos melhorar.
Nunca se explique. Seus amigos não precisam e seus inimigos não vão acreditar.
www.looksystem.com.br
Avatar do usuário
janio
Colaborador
Colaborador
Mensagens: 1846
Registrado em: 06 Jul 2004 07:43
Localização: UBAJARA - CE

Mensagem por janio »

Olá,

Existe um utilitário chamado NoDosImp, para impressão em impressoras USB, que dispõe desse recurso. Imprime jpg, gif, bmp, wmf, emf, ico.

Faça uma procura no fórum que há bastante material.

Um abraço,

Janio
fui...
e-mail:janioaguiar@yahoo.com.br
msn: janio_aguiar@hotmail.com
xHarbour1.2.1/Harbour3.2 + wvg + hwgui + Mediator + MySql
Avatar do usuário
vagucs
Membro Master
Membro Master
Mensagens: 1480
Registrado em: 10 Jul 2004 10:45
Localização: Ipanema - MG
Contato:

Mensagem por vagucs »

Faça uns teste com o PRWIN também, com ele vc não precisa musar seus comandos de impressao e pode imprimir imagens, codigo de barras, boletos bancários.
Sem mais
Wagner Nunes
www.vagucs.com.br
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem por software_facil »

Prezado,

Já que vc usa Pagescript, abaixo segue código fonte para imprimir duplicatas, com logotipo e saindo 2 em cada folha.

Código: Selecionar todos

FUNCTION Duplicata()

LOCAL GetList  := {}
LOCAL Cor      := SetColor()
LOCAL Tela     := SaveScreen()
LOCAL nOpcao   := 1
LOCAL Data_Emi := Date()
LOCAL Val_Fat  := 0
LOCAL Num_Fat  := Space( 12 )
LOCAL Num_Dup  := Space( 12 )
LOCAL nQtd     := 0
LOCAL Data_Pv  := CtoD('  /  /  ')
LOCAL Copias   := 3
LOCAL nI       := 0
LOCAL nJ       := 0
LOCAL nDia     := 0
LOCAL nMes     := 0
LOCAL nAno     := 0
LOCAL lFlag    := .F.
LOCAL nLinha1  := 0
LOCAL nLinha2  := 0
LOCAL dDatas1, dDatas2
LOCAL oBtn1, oBtn2
__XCLI         := 0
__XREC         := 0

Dialog(02,10,28,70,'EMITIR: DUPLICATA',BLUE,WHITE)
Status(11.5,11,23,69)
@ 06, 12 Say 'EMITIDO EM'             Color('B/W')
@ 06, 30 Say 'VALOR DA FATURA R$'     Color('B/W')
@ 06, 55 Say 'Nø DA FATURA'           Color('B/W')
@ 09, 12 Say 'QUANTIDADE DE PARCELAS' Color('B/W')
@ 09, 55 Say '1§ VENCIMENTO'          Color('B/W')

While .T.

      @ 04, 11 Say 'SACADO' Getwin __XCLI Pict '9999' Valid VCliente(04,23,40)
      @ 07, 12              Getwin Data_Emi Valid .Not. Empty( Data_Emi )
      @ 07, 33              Getwin Val_Fat Pict '@E 999,999.99' Valid .Not. Empty( Val_Fat )
      @ 07, 55              Getwin Num_Fat Pict '@K!' Valid .Not. Empty( Num_Fat )
      @ 10, 20              Getwin nQtd    Pict '99' Valid .Not. Empty( nQtd )
      @ 10, 56              Getwin Data_Pv Valid Data_Pv >= Data_Emi
      Read

      If LastKey() == 27
	 Exit
      Endif

      nDia := Day( Data_Pv )
      nMes := Month( Data_Pv )
      nAno := Year( Data_Pv )

      Sele DADOSDUP
      Zap
      Go Top
      For nI := 1 To nQtd
	  If nMes == 2 .And. nDia > 28
	     dDatas1 := '28/'+StrZero(nMes,2)+'/'+StrZero(nAno,4)
	  Else
	     dDatas1 := StrZero(nDia,2)+'/'+StrZero(nMes,2)+'/'+StrZero(nAno,4)
	  Endif
	  dDatas2 := CtoD( dDatas1 )
	  Append Blank
	  Replace NUM_PARC  With nI ,;
		  DATA_VCT  With dDatas2 ,;
		  VALOR_DUP With (Val_Fat/nQtd) ,;
		  NUM_DUP   With Alltrim(Num_Fat)+'/'+Alltrim(Str(nI))
		  Commit
	  nMes ++
	  If nMes > 12
	     nMes := 1
	     nAno ++
	  Endif
      Next

      BrowseDadosDup()

      @ 24, 11 Say 'ESCOLHA A IMPRESSORA '+Chr(16) Color('B/W')
      EscolhePRN(24,34)
      @ 26, 11 Say 'RECEITA' Getwin __XREC Pict '999' Valid VReceita(26,23,30)
      @ 26, 55 Say 'COPIAS'  Getwin Copias Pict '99' Valid .Not. Empty( Copias )
      Read

      If LastKey() == 27
	 Exit
      Endif

      Keyboard Chr(04)
      nOpcao := Winquest('ESCOLHA :',ICON_QUES,{'Imprimir','Voltar'})

      Do Case
	 Case nOpcao == 1
	      BEGINDOC WITH nPrinter TITLE "Duplicata" ORIENTATION APS_PORTRAIT

	      PSSetUnit(APS_TEXT)
	      PSSetRowCol(72, 82)
	      PSSetFont(APS_ARIAL, APS_PLAIN, 10)

	      Sele DADOSDUP
	      Go Top

	      nLinha1 := 1
	      nLinha2 := 2

	      While .Not. Eof()

		For nJ := 1 To Copias
		    PSFrame(nLinha1,01,nLinha1+11,42,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1,42,nLinha1+11,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+11,01,nLinha1+13,30,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+11,30,nLinha1+13,65,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+11,65,nLinha1+13,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+13,01,nLinha1+15,15,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+13,15,nLinha1+15,30,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+13,30,nLinha1+15,45,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+13,45,nLinha1+15,65,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+13,65,nLinha1+17,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+15,01,nLinha1+17,15,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+15,15,nLinha1+17,30,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+15,30,nLinha1+17,45,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+15,45,nLinha1+17,65,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+17,01,nLinha1+23,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+23,01,nLinha1+26,11,1,APS_BLACK,APS_NONE)
		    PSFrame(nLinha1+23,11,nLinha1+26,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+26,01,nLinha1+31,81,1,APS_BLACK,APS_NONE)
		    *-----
		    PSFrame(nLinha1+31,01,nLinha1+34,81,1,APS_BLACK,APS_NONE)


		    @ nLinha2, 05 TO nLinha2+5, 35 BITMAP "C:\RETAG\EMPRESA.BMP" COLOR RGB(255,255,255)

		    @ nLinha2+6, 02 TEXTOUT 'Endreço..., N. 999 - xxxxxx' SIZE 8
		    @ nLinha2+7, 02 TEXTOUT 'CEP: 80.000-000   -      Sao Paulo      -   SP' SIZE 8
		    @ nLinha2+8, 02 TEXTOUT 'FONE/FAX: (11) 222-2222' STYLE APS_BOLD SIZE 9

		    @ nLinha2,   45 TEXTOUT 'DUPLICATA DE VENDA MERCANTIL' STYLE APS_BOLD
		    @ nLinha2+2, 45 TEXTOUT 'E-MAIL: xxxxxxxxx@xxxxxxxxx.com.br' SIZE 9
		    @ nLinha2+3, 45 TEXTOUT 'SITE  : www.xxxxxx.com.br' SIZE 9
		    @ nLinha2+4, 45 TEXTOUT 'Inscrição Estadual: '
		    @ nLinha2+5, 45 TEXTOUT 'Inscrição CNPJ    : '
		    @ nLinha2+7, 45 TEXTOUT 'DATA DE EMISSAO   :' SIZE 12
		    @ nLinha2+7, 68 TEXTOUT DtoC( Data_Emi ) STYLE APS_BOLD SIZE 14 COLOR APS_BLUE

		    @ nLinha2+11, 12 TEXTOUT 'FATURA'
		    @ nLinha2+11, 42 TEXTOUT 'DUPLICATA'
		    @ nLinha2+11, 68 TEXTOUT 'VENCIMENTO'

		    @ nLinha2+13, 04 TEXTOUT 'VALOR R$'
		    @ nLinha2+13, 19 TEXTOUT 'NUMERO'
		    @ nLinha2+13, 34 TEXTOUT 'VALOR R$'
		    @ nLinha2+13, 51 TEXTOUT 'N. ORDEM'

		    @ nLinha2+14, 68 TEXTOUT DtoC( Data_Vct ) STYLE APS_BOLD SIZE 14 COLOR APS_BLUE

		    @ nLinha2+15, 06 TEXTOUT Trans( Val_Fat,'@E 999,999.99' ) COLOR APS_BLUE
		    @ nLinha2+15, 18 TEXTOUT Num_Fat COLOR APS_BLUE
		    @ nLinha2+15, 36 TEXTOUT Trans( Valor_Dup,'@E 999,999.99' ) COLOR APS_BLUE
		    @ nLinha2+15, 50 TEXTOUT DADOSDUP->Num_Dup COLOR APS_BLUE

		    Sele CLIENTE
		    Set Order To 1
		    Go Top
		    Seek __XCLI

		    @ nLinha2+17, 02 TEXTOUT 'NOME SACADO'
		    @ nLinha2+17, 21 TEXTOUT Alltrim( CLIENTE->Raz_Social ) STYLE APS_BOLD COLOR APS_BLUE
		    @ nLinha2+18, 02 TEXTOUT 'ENDERE€O'
		    @ nLinha2+18, 21 TEXTOUT Alltrim( CLIENTE->N_Lograd )+', '+Alltrim( CLIENTE->N_N_Logr )+', '+Alltrim( CLIENTE->N_Bairro )+' '+Alltrim( CLIENTE->N_Compl )
		    @ nLinha2+19, 02 TEXTOUT 'MUNICIPIO-UF'
		    @ nLinha2+19, 21 TEXTOUT Alltrim( CLIENTE->N_Cidade )+'-'+Alltrim( CLIENTE->N_Uf )+'   CEP: '+Trans( CLIENTE->N_Cep,'@R 99.999-999' )
		    @ nLinha2+20, 02 TEXTOUT 'PRA€A DE PAGAMENTO'
		    @ nLinha2+20, 21 TEXTOUT 'A MESMA'
		    @ nLinha2+21, 02 TEXTOUT 'CNPJ ou CPF'
		    If Empty( CLIENTE->Cnpj )
		       @ nLinha2+21, 21 TEXTOUT Trans( CLIENTE->Cpf,'@R 999.999.999-99' )
		    Else
		       @ nLinha2+21, 21 TEXTOUT Trans( CLIENTE->Cnpj,'@R 99.999.999/9999-99' )
		    Endif
		    @ nLinha2+21, 45 TEXTOUT 'I.E.'
		    @ nLinha2+21, 50 TEXTOUT CLIENTE->Ie+'/'+CLIENTE->Uf_Ie

		    Sele DADOSDUP

		    @ nLinha2+23, 02 TEXTOUT 'VALOR POR'
		    @ nLinha2+24, 02 TEXTOUT ' EXTENSO'
		    @ nLinha2+23, 12 TEXTOUT Extenso( Valor_Dup ) SIZE 09
		    @ nLinha2+24, 12 TEXTOUT Repli('*',120)

		    @ nLinha2+26, 03 TEXTOUT 'Reconheço(emos) a exatidão desta DUPLICATA DE VENDA MERCANTIL com pagamento parcelado, na importância acima,' SIZE 09
		    @ nLinha2+27, 03 TEXTOUT 'que pagarei(emos) à                  , ou à sua ordem, na praça e vencimento indicados.' SIZE 09
		    @ nLinha2+28, 03 TEXTOUT 'BANCO: BANCO DO BRASIL     AGÊNCIA:        C/C N.:        ' STYLE APS_BOLD SIZE 10
		    @ nLinha2+29, 03 TEXTOUT 'Pagável em qualquer agência até o vencimento' SIZE 08

		    @ nLinha2+31, 05 TEXTOUT 'Em, _________/__________/__________'
		    @ nLinha2+31, 45 TEXTOUT '___________________________________'
		    @ nLinha2+32, 05 TEXTOUT '                     Data do Aceite'
		    @ nLinha2+32, 45 TEXTOUT '               Assinatura do Sacado'

		    If nLinha2 == 2
		       @ nLinha2+34, 00 TEXTOUT Repli("- ",95)
		       nLinha1 := 37
		       nLinha2 := 38
		    ElseIf nLinha2 <> 2
		       NEWPAGE
		       nLinha1 := 1
		       nLinha2 := 2
		    Endif

		    If nJ == Copias
		       Exit
		    Endif
		Next

		Skip

	      End

	      ENDDOC
	      *-------------------
	      * GRAVAR INFORMAیES
	      *
	      Sele CLIENTE
	      Set Order To 1
	      Go Top
	      Seek __XCLI
	      tmpNOMCLI := CLIENTE->Raz_Social
	      Sele DADOSDUP
	      Go Top
	      tmpPRIVCTO := DADOSDUP->Data_Vct
	      tmpVLRDUP  := DADOSDUP->Valor_Dup
	      tmpNUMDUP  := DADOSDUP->Num_Dup
	      Go Bottom
	      tmpULTVCTO := DADOSDUP->Data_Vct
	      tmpVIAS    := DADOSDUP->Num_Parc
	      Sele DUPLICATA
	      If AddReg()
		 Replace COD_CLI    With __XCLI ,;
			 NOME_CLI   With tmpNOMCLI ,;
			 DATA_EMI   With Data_Emi ,;
			 PRIM_VCTO  With tmpPRIVCTO ,;
			 ULT_VCTO   With tmpULTVCTO ,;
			 FAT_VALOR  With Val_Fat ,;
			 FAT_NUMERO With Num_Fat ,;
			 DUP_VALOR  With tmpVLRDUP ,;
			 DUP_NUMERO With tmpNUMDUP ,;
			 QTD_VIAS   With tmpVIAS
			 Commit
			 Unlock
	      Endif
	      *----
	      Sele DADOSDUP
	      Go Top
	      While .Not. Eof()
		    Sele CREC
		    If AddReg()
		       Replace CLIENTE  With __XCLI ,;
			       CODREC   With __XREC ,;
			       DEMISSAO With Data_Emi ,;
			       DVENCIM  With DADOSDUP->Data_Vct ,;
			       OBS      With "PARCELA "+Alltrim(Str(DADOSDUP->Num_Parc))+" DE "+Alltrim(Str(tmpVIAS)) ,;
			       VTOTAL   With DADOSDUP->Valor_Dup ,;
			       SITUACAO With .F. ,;
			       ORIGEM   With .F. ,;
			       COD_DOC  With 3 ,;
			       NUM_DOC  With DADOSDUP->Num_Dup
			       Commit
			       Unlock
		    Endif
		    Sele DADOSDUP
		    Skip
	      End
	      Exit
      EndCase

      Sele DUPLICATA
      LOOP

End

Sele DUPLICATA

SetColor( Cor )
RestScreen(,,,,Tela)
Return( Nil )
Algumas funções não são do Clipper, como as que montam janelas, ou o GET, que nos meus sistemas uso modificado com o nome de GETWIN.
A impressão de duplicatas que uso, o usuário escolhe o Cliente e as condições, sendo que as informações são gravadas em um DBF para posterior consulta, mas o que vc precisa, que é o código fonte, creio que lhe servirá.

Abraços
messenger : software_facil@hotmail.com
clauber
Usuário Nível 3
Usuário Nível 3
Mensagens: 263
Registrado em: 22 Jul 2004 21:17
Localização: ceara

Mensagem por clauber »

aproveitando o topico eh o seguinhte:

-quando mudei para imprimir direto por um gerenciador, optei por usar o prwin4, mas algumas impressora naum funciounou...
- entaum mudei pa nodosimp, o problema eh, ele imprime grafico mas so se antes da um preview, e os comandos de compactacao eh complicado, as fontes saum pequenas demais e naum imprime codigo de barra.
- onde consigo a versao 9.0 do nodosimp,
- alguem tem outra solucao melhor
""
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem por software_facil »

PAGESCRIPT
messenger : software_facil@hotmail.com
Responder