Página 1 de 2
Formulário em PDF com logotipo
Enviado: 01 Jul 2017 14:46
por Jairo Maia
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?
Código: Selecionar todos
/*
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 )
Formulário em PDF com logotipo
Enviado: 01 Jul 2017 16:32
por JoséQuintas
Dá uma olhada nos métodos DrawLine(), DrawImage() e DrawRetangle()
https://github.com/JoseQuintas/pdfclass ... #L161,L224
Formulário em PDF com logotipo
Enviado: 01 Jul 2017 21:35
por fladimir
Acho mais fácil fazer no fast
Já tentou?
Formulário em PDF com logotipo
Enviado: 02 Jul 2017 10:16
por Jairo Maia
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?
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:
Código: Selecionar todos
//IF ::nPdfPage == 0
//::AddPage()
//::DrawText( 10, 10, "NENHUM CONTEUDO (NO CONTENT)",, ::nFontSize * 2 )
//ENDIF
Formulário em PDF com logotipo
Enviado: 02 Jul 2017 12:59
por JoséQuintas
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.
Formulário em PDF com logotipo
Enviado: 04 Jul 2017 11:03
por Jairo Maia
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.
Formulário em PDF com logotipo
Enviado: 04 Jul 2017 11:52
por fladimir
:-Y :-Y :-Y
Q bom
Tem como postar o exemplo do código de como ficou?
Formulário em PDF com logotipo
Enviado: 04 Jul 2017 17:07
por Jairo Maia
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.
Formulário em PDF com logotipo
Enviado: 04 Jul 2017 19:59
por JoséQuintas
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/LibJoseQ ... fclass.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.
Formulário em PDF com logotipo
Enviado: 04 Jul 2017 20:09
por JoséQuintas
Movi pra extras da LIB testes que eu deixava no aplicativo, por exemplo um teste de Danfe pela PDFClass:
https://github.com/JoseQuintas/LibJoseQ ... sdanfe.prg
conversão DBF pra Access
https://github.com/JoseQuintas/LibJoseQ ... tesmdb.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.
Formulário em PDF com logotipo
Enviado: 07 Jul 2017 14:09
por rochinha
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.
Formulário em PDF com logotipo
Enviado: 07 Jul 2017 16:09
por JoséQuintas
Como eu venho dizendo, ando reorganizando.
Ficava na pasta extras, mas achei melhor renomear pra Drafts (rascunhos)
https://github.com/JoseQuintas/LibJoseQ ... sdanfe.prg
https://github.com/JoseQuintas/LibJoseQ ... tesmdb.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.
Formulário em PDF com logotipo
Enviado: 13 Set 2018 23:34
por rochinha
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?
Código: Selecionar todos
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 *
Formulário em PDF com logotipo
Enviado: 27 Set 2018 21:51
por lugab
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
Formulário em PDF com logotipo
Enviado: 28 Set 2018 11:53
por rochinha
Amiguinhos,
lugab
posta ai seu .BAT, .HBP, blablabla.