Exemplos de XHarbour - GERA_PDF

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

Moderador: Moderadores

Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Exemplos de XHarbour - GERA_PDF

Mensagem por billy1943 »

Como estou interessado em aprender um pouco mais sobre o XHarbour/Harbour, baixei o Instalador 1.2.1 em Downloads, postado pelo Sygecom, e adaptei o exemplo de Gera_PDF, para uso conjunto com o meu ERP.

Assim preparei o arquivo texto que vai servir de entrada para o programa em XHarbour gerar o .PDF correspondente.

Deve ter algum erro no seguinte trecho do fonte PDF.PRG, abaixo listado, onde são geradas as linhas gravadas no arquivo temporário e emite o relatório já em .PDF.

Ele está voltando à linha 1, e, assim por exemplo, se o relatório tiver 80 linhas, ele imprime a primeira folha com 60 linhas, volta à linha 1 e emite novamente a mesma folha.

A dúvida é:
"Posso retirar o teste de IF ccont == 60 ?"

Pois em relatórios pelo WORD não existe a preocupação de contagem de linhas, pois o Word reparte o texto de acordo com as suas especificações (fontes, tamanho de página, etc.)

*
// trecho do fonte

Código: Selecionar todos

*****************************************************************************
do while ! eof()

   clinha := linha           // Busca linha de impressao
   ccont  := ccont + 1
   aadd(amsg,clinha)

   if ccont == 60   //posso retirar da linha 8 até 13?
      pdfdrawpage(amsg)
      pdfendpage()
      pdfstartpage( {vautor}, .t.)
      ccont := 0
   endif

   dbskip()

enddo

pdfdrawpage(amsg)
pdfendpage()
pdfend()
abre_arquivo( cfile3 )
return nil
.....
Editado pela última vez por Toledo em 02 Mai 2011 22:39, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Exemplos de XHarbour - GERA_PDF

Mensagem por sygecom »

Billy,
Para que todos entenda post o codigo completo que ajusto no exemplo para você como estou atualmente.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Re: Exemplos de XHarbour - GERA_PDF

Mensagem por billy1943 »

Oi, Sygecom

Eu fiz pequenas alterações no fonte para poder utilizá-lo em conjunto com o meu ERP, sendo a principal que passo o nome do arquivo texto gerado pelo meu sistema, na forma de parâmetro para o programa em Xharbour.

Esse arquivo não tem nenhum caracter de controle, similar a quando se usa o NODOSIMP.EXE.
O interessante também para outros colegas que poderiam usar o aplicativo gerado, seria saber quais as especificações para o relatório, tais como:
- fontes que poderiam ser usados
- tamanho de caracteres
- tamanho da linha
etc,

Código: Selecionar todos

*************
FUNCTION main
*************
parameter arq_texto
private amsg, cimg
amsg := {}
set(105,1)
set(106,1)
pospto := at(".", arq_texto)
cfile1 := substr(arq_texto, 1, pospto - 1)
cfile1 += ".pdf" 
cfile3 := cfile1 
varq := {}
aadd( varq, {"linha","C",200,0} )
dbcreate("temp_pdf.dbf", varq)
vautor := "NOME DA EMPRESA"
use temp_pdf new shared
append from (arq_texto) sdf 
pdfnew(cfile3,6,842,595,1,1,,,{vautor,vautor,vautor,vautor,vautor})  // esse é o que eu uso
pdfstartpage( {vautor}, .t. )
hb_setlandscape(.t.)
dbgotop()
ccont := 0

do while ! eof()

   clinha := linha           
   ccont  := ccont + 1
   aadd(amsg,clinha)

   if ccont == 60
      pdfdrawpage(amsg)
      pdfendpage()
      pdfstartpage( {vautor}, .t.)
      ccont := 0
   endif

   dbskip()

enddo

pdfdrawpage(amsg)
pdfendpage()
pdfend()
abre_arquivo( cfile3 )
return nil

FUNCTION abre_arquivo( chelpfile )
local nret, cpath, cfileName, cfileExt
hb_fnamesplit( chelpfile, @cpath, @cfilename, @cfileext )
nret := _openhelpfile( cpath, chelpfile )
return nret

#pragma BEGINDUMP
   #pragma comment( lib, "shell32.lib" )
   #include "hbapi.h"
   #include <windows.h>
   HB_FUNC( _OPENHELPFILE )
   {
     HINSTANCE hInst;
     LPCTSTR lpPath = (LPTSTR) hb_parc( 1 );
     LPCTSTR lpHelpFile = (LPTSTR) hb_parc( 2 );
     hInst = ShellExecute( 0, "open", lpHelpFile, 0, lpPath, SW_SHOW );
     hb_retnl( (LONG) hInst );
     return;
   }
#pragma ENDDUMP
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Re: Exemplos de XHarbour - GERA_PDF

Mensagem por billy1943 »

Como poderia ser de grande utilidade para nossos colegas que usam impressão para formatos .PDF, venho solicitar a quem tenha como exemplicar os parametros da função PDFNEW, abaixo, da PDFLIB.LIB.
Essa função está no programa PDF.PRG nos exemplos do Xharbour, pasta GERA_PDF.
Exemplo constado (trecho):

Código: Selecionar todos

pdfnew(cfile3,6,842,595,1,1,,,{vautor,vautor,vautor,vautor,vautor})  // esse é o que eu uso
Por experimentação, descobri que os parametros 842 e 595 não podem ser mudados, sob pena de erro de execução.
O parametro logo após o nome do arquivo de entrada, no caso cfile3, significa o tamanho da fonte, podendo ser 5,6,7...
Agora ficam necessários saber os outros, para podermos controlar o fonte, salto de formulário, etc.

Quem souber onde conseguí-los os usuários interessados irão agradecer.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Avatar do usuário
billy1943
Usuário Nível 4
Usuário Nível 4
Mensagens: 570
Registrado em: 12 Mai 2009 17:33
Localização: Bauru-SP

Re: Exemplos de XHarbour - GERA_PDF

Mensagem por billy1943 »

Complementando o tópico acima, em pesquisa, apurei que os parametros 842 e 595 referem-se ao formulário A4, ou seja não podemos mudar o papel, no exemplo dado, e que são as medidas respectivas a 29,7 cm e 21,0 cm;
Como está no exemplo 842 e 595 a impressão sai em Landscape.

Logicamente existem outros valores relativos aos demais formatos, mas precisaríamos ter acesso a todo o manual de referência da PDFLIB.
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
maronis
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 08 Ago 2012 23:01
Localização: Sao Paulo/SP

Exemplos de XHarbour - GERA_PDF

Mensagem por maronis »

Olá.

Acompanhei a discussão sobre a pdflib e o gera_pdf.prg.
Estou tentando utilizar a pdflib e o gera_pdf como ponto de partida para meu sistema. A compilação esta ok, a lib é gerada e o sistema compila sem problemas. Na hora de acionar as funções da pdflib estou tendo um erro na chamada da função PdfStartPage( {vAUTOR} , .T. ) de dentro do gera_pdf

Error BASE/1004 Class 'NIL' has no exported method: PDFNEWPAGE

Algum de vocês já passou por isto? Alguma idéia de como resolver este problema?

Orbigado.
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Exemplos de XHarbour - GERA_PDF

Mensagem por lugab »

Billy, bom dia...

Estou agora na batalha, a estudar este mesmo exemplo de GERA_PDF , q vc postou a quase um ano..

De antemão, saiba q descobri esse tpc só hoje , e , desde já agradeço pelas postagens q vc colocou até o momento, pois elas já me ajudaram bastante.

Agora, tb estou precisando de mais informaçãoes sobre os parâmteros da PDFLIB e gostaria de saber o q mais vc conseguiu de dicas sobre esses parâmetros, e que pode
compartilhar conosco..

O q quer q seja de informação, será muito util, pq eu não sei nada-de-nada, ainda..

Enfim, depois q eu consegui o basicão, que é compilar essa rotina dentro do meu sistema, aí eu vou partir pra aprimorar ele , com recursos do tipo:

1-Como quebrar páginas com exatidão
2-como colocar um cabeçalho e um rodapé
3-como colocar um logotipo e quais os tipos possíveis
4-Como negritar/sublinhar/condensar uma determinada linha


Grato,

Gabriel
lugab
burel
Usuário Nível 1
Usuário Nível 1
Mensagens: 8
Registrado em: 27 Jan 2013 13:09
Localização: rio de janeiro

Exemplos de XHarbour - GERA_PDF

Mensagem por burel »

Bom dia pessoal, estou utilizando a biblioteca PDFLIB.LIB, funcionou muito bem de primeira, porém, agora preciso utilizar alguns parâmetros como retirada do espaço acima da página reservada para o cabeçalho, centralizar o texto na página, posicionando a tabulação mais a direita e alteração do tipo da fonte.

Testei altera os parâmetros em: PdfNew(cFileToSave,7,842,595,1,1,,,) mas apenas a alteração do tamanho de fonte, no segundo parâmetro que me retornou um resultado diferente, os 2 último: ",1,1,,," não alterou.

Esta pedlib.lib é muito boa mesmo, mas preciso da documentação dela para configurar os parâmetros de acordo com as minha necessidades.

Alguém tem esta documentação?

agradeço a atenção,

Abraço,
Eduardo
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

Exemplos de XHarbour - GERA_PDF

Mensagem por Linguagemclipper »

Tem como eu converter um objeto Win32prn (antes de dar o :endDoc) em arquivo PDF?
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Exemplos de XHarbour - GERA_PDF

Mensagem por lucimauro »

Voce pode instalar uma impressora PDF e direcionar a impressão que será gerado um PDF, não se resolveria seu problema.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

Exemplos de XHarbour - GERA_PDF

Mensagem por Linguagemclipper »

lucimauro escreveu:Voce pode instalar uma impressora PDF e direcionar a impressão que será gerado um PDF, não se resolveria seu problema.
Isso eu já faço... uso o PDFCreator
Queria não depender dele.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Exemplos de XHarbour - GERA_PDF

Mensagem por Itamar M. Lins Jr. »

Olá!
Queria não depender dele.
Depois de usar para o básico, migrei 95% dos relatórios e gráficos(Charts via Api do GOOGLE) para HTML.
Temos exemplos na internet, tudo que temos na internet é em HTML, e a conversão para PDF pelo Chrome/Edge via linha de comando ou pelo próprio navegador. É unir o que há de mais avançado no momento para leiautes de relatórios e todo tipo de apresentação via navegadores.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Mario Mesquita
Usuário Nível 4
Usuário Nível 4
Mensagens: 613
Registrado em: 08 Dez 2009 13:47
Localização: Rio de Janeiro

Exemplos de XHarbour - GERA_PDF

Mensagem por Mario Mesquita »

Bom dia a todos.

Também uso o PDFCreator, é muito bom mas sempre tem o problema das impressoras virtuais serem desconfiguradas, o programa ser apagado, etc.

Opcionalmente, uso a HaruPDF, está no pacote do Harbour ou da MiniGui, agora não lembro. Tem exemplos de uso aqui no forum.

Saudações,
Mario.
Avatar do usuário
Linguagemclipper
Usuário Nível 3
Usuário Nível 3
Mensagens: 240
Registrado em: 16 Abr 2016 17:33
Localização: Maceió/AL
Contato:

Exemplos de XHarbour - GERA_PDF

Mensagem por Linguagemclipper »

Esperava que tivesse algo do Harbour na wiki da lib Haru: https://github.com/libharu/libharu/wiki/Bindings
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Exemplos de XHarbour - GERA_PDF

Mensagem por JoséQuintas »

Linguagemclipper escreveu:Esperava que tivesse algo do Harbour na wiki da lib Haru
O Harbour segue a harupdf, é só olhar o manual da harupdf.

Que eu me lembre, a OOHG tem uma lib própria pra usar mesmos comandos e sair em Excel, Winprn, harupdf, html, etc., talvez dê pra ver como ela faz pra usar de base na conversão, ou até usá-la diretamente.

Teria a opção de talvez salvar como imagem e incluir a imagem no PDF.

Mas sei lá... codificar direto em PDF acho que seria o mais prático, já que hoje em dia tudo visualiza e imprime PDF.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder