Clipper On Line • Ver Tópico - Formulário em PDF com logotipo

Formulário em PDF com logotipo

Discussão sobre ferramentas de apoio à programação (Clipper/[x]Harbour)

Moderador: Moderadores

 

Formulário em PDF com logotipo

Mensagempor Jairo Maia » 01 Jul 2017 14:46

Olá Pessoal,

Preciso montar um formulário com logotipo que será entregue ao cliente com os dados da compra que será entregue posteriormente (móveis).

Estou tentando fazer em PDF porque será visualizado antes da impressão, para eventuais correções. Como arrumo esse exemplo pra poder imprimir os retângulos no formulário, e o logotipo dentro dele, no canto superior esquerdo. Não consigo andar com isso. O logo é impresso no rodapé e quanto a tentar desenhar o retângulo, no site tem:

HPDF_Page_Rectangle() appends a rectangle to the current path.
An application can invoke HPDF_Page_Rectangle() when the graphics mode of the page is in HPDF_GMODE_PAGE_DESCRIPTION or HPDF_GMODE_PATH_OBJECT.
Como defino esses modos?

/*
   Compilar: HBMK2 exemplo hbhpdf.hbc
*/
#include "harupdf.ch"

Function Main()

   Local cFileToSave := "Arquivo.PDF"

   Private oPDF, oPage, nHeight, nWidth, cFonte
   
   oPDF := HPDF_New()
   If oPDF = Nil
      Hb_Alert( "Erro ao gerar o Arquivo Pdf" )
      Return Nil
   EndIf

   HPDF_SetCompressionMode( oPDF, HPDF_COMP_ALL )

   oPage := HPDF_AddPage( oPDF )
   nHeight := HPDF_Page_GetHeight( oPage )
   nWidth  := HPDF_Page_GetWidth( oPage )
   
   //HPDF_Page_CheckState( oPage, HPDF_GMODE_PAGE_DESCRIPTION )
   //HPDF_Page_Rectangle( oPage, 10, 10, 200, 70 )
   
   oImage  := HPDF_LoadJPEGImageFromFile( oPDF, "logotipo.jpg" )
   HPDF_Page_DrawImage( oPage, oImage, 2, 5, 170, 60 )

   cFonte := HPDF_GetFont( oPDF, "Helvetica", NIL )
   HPDF_Page_BeginText( oPage )
   HPDF_Page_MoveTextPos( oPage, 10, nHeight - 10 )
   HPDF_Page_SetFontAndSize( oPage, cFonte, 7 )

   //HPDF_Page_MoveTextPosNextLine( oPage )
   HPDF_Page_ShowText( oPage, "Teste de Texto 1" )
   HPDF_Page_MoveTextPos( oPage, 0, -10 )
   HPDF_Page_ShowText( oPage, "Teste de Texto 2" )
   HPDF_Page_MoveTextPos( oPage, 0, -10 )
   HPDF_Page_ShowText( oPage, "Teste de Texto 3" )

   HPDF_Page_EndText( oPage )
   
   HPDF_SaveToFile( oPDF, cFileToSave )

   HPDF_Free( oPDF )

Return ( cFileToSave )
Anexos
logotipo.jpg
logotipo.jpg (6.53 KiB) Visualizado 8041 vezes
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Formulário em PDF com logotipo

Mensagempor JoséQuintas » 01 Jul 2017 16:32

Dá uma olhada nos métodos DrawLine(), DrawImage() e DrawRetangle()

https://github.com/JoseQuintas/pdfclass/blob/master/ze_pdfclass.prg#L161,L224
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Formulário em PDF com logotipo

Mensagempor fladimir » 01 Jul 2017 21:35

Acho mais fácil fazer no fast

Já tentou?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Formulário em PDF com logotipo

Mensagempor Jairo Maia » 02 Jul 2017 10:16

Olá Pessoal,

fladimir escreveu:Acho mais fácil fazer no fast
Já tentou?
Não tentei. Na verdade nunca usei o fast. De qualquer forma, estou tentando com com a PDFClass, vou insistir um pouco e ver se o resultado final será como preciso, qualquer coisa tento no fast. Tem algum exemplo que que você indicaria?

JoséQuintas escreveu:Dá uma olhada nos métodos DrawLine(), DrawImage() e DrawRetangle()
Ok, agora uma pergunta básica: Como altero o fonte. Gostaria que uma das linhas (SAC e VENDAS) ficassem em negrito. Onde vejo quais fontes posso usar?

Emporio.jpg


O Método End() está criando uma página vazia ao iniciar a Classe. Alterei e resolveu, mas não sei se terá outras consequência:
//IF ::nPdfPage == 0
    //::AddPage()
    //::DrawText( 10, 10, "NENHUM CONTEUDO (NO CONTENT)",, ::nFontSize * 2 )
//ENDIF
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Formulário em PDF com logotipo

Mensagempor JoséQuintas » 02 Jul 2017 12:59

ficassem em negrito. Onde vejo quais fontes posso usar?


A Harupdf tem fontes internos, e dá pra adicionar qualquer fonte Windows.
Mas teria que embutir também os fontes no PDF, pra garantir que abra o PDF em qualquer lugar.

Manual da harupdf

https://github.com/libharu/libharu/wiki

as vezes pode ser que o manual pra php ajude
http://php.net/manual/pt_BR/book.haru.php

O negrito, seria por exemplo o fonte "courier-bold"

No PDF não é igual impressora. O AddPage seria algo como carregar uma folha pra trabalho de impressão.
Ao invés de EJECT quando terminar a impressão, é um ADDPAGE ANTES de começar a impressão.

No final o DrawText() é o que já faz tudo referente a texto: escolhe fonte, tamanho e desenha o texto.
E o texto pode ser horizontal, vertical, inclinado, invertido horizontal, invertido vertical, etc.
Nota: DrawText() na classe PDF, que já mostra o que precisa na Harupdf.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Formulário em PDF com logotipo

Mensagempor Jairo Maia » 04 Jul 2017 11:03

Valeu José. Obrigado por todas as dicas.

Tudo pronto, integrado ao sistema e funcionando. O leiaute final do cabeçalho que era o tido como mais importante foi aprovado como abaixo. Ficou bem funcional. Importante que agradou, isso foi importante.

Valeu mesmo.

cabecalho.jpg
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Formulário em PDF com logotipo

Mensagempor fladimir » 04 Jul 2017 11:52

:-Y :-Y :-Y

Q bom

Tem como postar o exemplo do código de como ficou?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Avatar de usuário

fladimir
Colaborador

Colaborador
 
Mensagens: 2434
Data de registro: 15 Nov 2006 19:21
Curtiu: 28 vezes
Mens.Curtidas: 157 vezes

Formulário em PDF com logotipo

Mensagempor Jairo Maia » 04 Jul 2017 17:07

Olá Fladimir,

Em anexo todos os arquivos necessários para gerar o leiaute do exemplo. Tenha em mente que esse exemplo apenas gera o leiaute, e claro, o preenchimento dos campos somente estão na função integrada ao sistema.

Descompacte numa pasta vazia, e digite PDF. Será gerado o arquivo Pdf05.Exe que gerará o leiaute e mostrará em tela.

NOTA: No pacote está o arquivo PDFClass.PRG. Atenção porque alterei o método END(), uma vez que como não uso o método PageHeader(), a variável ::nPdfPage fica em zero, antão esse método adicionava uma página no PDF com a mensagem de conteúdo vazio.

NOTA1: Você também irá notar que não houve a preocupação com a impressão desse documento em mais de 1 página. Isso porque pela característica dessa loja, essa questão foi descartada, nem quiseram discutir por acharem desnecessário. Pelo histórico da loja, produtos destinados a entrega ficam entre 1 e no máximo 8, sendo normalmente uma média entre 1 a 4.
Anexos
ExemploPdf.rar
(695.21 KiB) Baixado 415 vezes
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)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

Formulário em PDF com logotipo

Mensagempor JoséQuintas » 04 Jul 2017 19:59

Perguntou da HaruPDF e acabou usando minha classe pra PDF... rs

A última versão, direto do meu aplicativo está aqui:

https://github.com/JoseQuintas/LibJoseQuintas/blob/master/src/util/ze_pdfclass.prg

Ganhou opção de trabalhar em pixels, além de linha/coluna ou centímetros, e algumas coisinhas a mais.
Mas por ser direto do aplicativo, pode ter dependências a ajustar, mas não impedem o uso.

Tudo indica que vou acabar colocando uma versão reduzida do aplicativo como exemplo pra tudo que tem/vai ter na LIB.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Formulário em PDF com logotipo

Mensagempor JoséQuintas » 04 Jul 2017 20:09

Movi pra extras da LIB testes que eu deixava no aplicativo, por exemplo um teste de Danfe pela PDFClass:

https://github.com/JoseQuintas/LibJoseQuintas/blob/master/extras/ptesdanfe.prg

conversão DBF pra Access

https://github.com/JoseQuintas/LibJoseQuintas/blob/master/extras/ptesmdb.prg

E outras coisas mais.

Ainda em fase de organização.
Esses estão na pasta extras, mas não fazem parte do arquivo de LIB que é gerado.

Desse jeito compartilho meus testes, e elimino do aplicativo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Formulário em PDF com logotipo

Mensagempor rochinha » 07 Jul 2017 14:09

Amiguinhos,

A biblioteca compilada para Borland 5.xx ou 6.xx, alguém tem? que poderia disponibilizar.

Jose Quintas


Links não funcionaram dando em Page 404.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Formulário em PDF com logotipo

Mensagempor JoséQuintas » 07 Jul 2017 16:09

Como eu venho dizendo, ando reorganizando.

Ficava na pasta extras, mas achei melhor renomear pra Drafts (rascunhos)

https://github.com/JoseQuintas/LibJoseQuintas/blob/master/drafts/ptesdanfe.prg

https://github.com/JoseQuintas/LibJoseQuintas/blob/master/drafts/ptesmdb.prg

Na principal sempre encontra tudo:

https://github.com/JoseQuintas/LibJoseQuintas/

Inclusive tabelas, movi pra \source\tabelas
E não são compiladas pra LIB.
Aumentar mais de 2MB no EXE deixou de ser tão interessante.... rs
Mais interessante baixar de uma base MySQL ou webservice.
Ou poderia ser uma DLL, mas seja como for, é um arquivo adicional, e mandar um ZIP dá no mesmo.

Nota:
Um dos fontes mencionados é um teste de Danfe usando a PDFClass
De certa forma, se encaixa no assunto do tópico.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Formulário em PDF com logotipo

Mensagempor rochinha » 13 Set 2018 23:34

Amiguinhos,

Baixei o anexo logo acima na postagem do Jairo Maia e compilei usando Harbour 3.2.0 linkando as bibliotecas libhpdf.lib, hbhpdf.lib, hbzebra.lib.

Obtive os seguintes erros. Qual biblioteca ainda tá faltando?
Compiling...
        1 arquivo(s) copiado(s).
C:\DEV5WIN\harbour-3.2-17626\lib\hboleaut.lib
        1 arquivo(s) copiado(s).
Harbour 3.2.0dev (r1307082134)
Copyright (c) 1999-2013, http://harbour-project.org/
Compiling 'PDF05.prg' and generating preprocessed output to 'PDF05.ppo'...

Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
PDF05.c:

Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_deflateInit_' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfstre
Error: Unresolved external '_deflate' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfstre
Error: Unresolved external '_deflateEnd' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfstre
Error: Unresolved external '_png_get_io_ptr' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_error_ptr' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_read_rows' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_image_height' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_image_width' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_color_type' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_rowbytes' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_read_image' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_PLTE' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_create_read_struct' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_create_info_struct' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_set_sig_bytes' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_set_read_fn' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_read_info' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_IHDR' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_set_strip_16' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_read_update_info' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_valid' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_tRNS' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_get_interlace_type' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_destroy_read_struct' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
Error: Unresolved external '_png_sig_cmp' referenced from C:\DEV5WIN\HARBOUR-3.2-17626\LIB\LIBHPDF.LIB|hpdfimap
* Linking errors *
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Formulário em PDF com logotipo

Mensagempor lugab » 27 Set 2018 21:51

Não é que eu consegui gerar um PDF certinho, sem erro de compilação e sem faltar uma função ?

Agradeço a todos, e especialmente a Jairo Maia, pelo exemploPdf.rar que compartilhou nesse tópico
lugab
lugab
Colaborador

Colaborador
 
Mensagens: 843
Data de registro: 19 Mai 2009 15:58
Curtiu: 126 vezes
Mens.Curtidas: 38 vezes

Formulário em PDF com logotipo

Mensagempor rochinha » 28 Set 2018 11:53

Amiguinhos,

lugab
posta ai seu .BAT, .HBP, blablabla.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

Próximo



Retornar para Ferramentas de Apoio

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 5 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro