Página 1 de 1

Exemplos de XHarbour - GERA_PDF

Enviado: 02 Mai 2011 22:12
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
.....

Re: Exemplos de XHarbour - GERA_PDF

Enviado: 03 Mai 2011 19:06
por sygecom
Billy,
Para que todos entenda post o codigo completo que ajusto no exemplo para você como estou atualmente.

Re: Exemplos de XHarbour - GERA_PDF

Enviado: 03 Mai 2011 22:15
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

Re: Exemplos de XHarbour - GERA_PDF

Enviado: 05 Mai 2011 11:27
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.

Re: Exemplos de XHarbour - GERA_PDF

Enviado: 05 Mai 2011 14:28
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.

Exemplos de XHarbour - GERA_PDF

Enviado: 08 Ago 2012 23:14
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.

Exemplos de XHarbour - GERA_PDF

Enviado: 19 Mai 2013 23:56
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

Exemplos de XHarbour - GERA_PDF

Enviado: 16 Abr 2015 11:01
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

Exemplos de XHarbour - GERA_PDF

Enviado: 09 Mar 2022 11:47
por Linguagemclipper
Tem como eu converter um objeto Win32prn (antes de dar o :endDoc) em arquivo PDF?

Exemplos de XHarbour - GERA_PDF

Enviado: 19 Mar 2022 18:22
por lucimauro
Voce pode instalar uma impressora PDF e direcionar a impressão que será gerado um PDF, não se resolveria seu problema.

Exemplos de XHarbour - GERA_PDF

Enviado: 17 Mai 2022 22:04
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.

Exemplos de XHarbour - GERA_PDF

Enviado: 18 Mai 2022 09:12
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.

Exemplos de XHarbour - GERA_PDF

Enviado: 19 Mai 2022 10:11
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.

Exemplos de XHarbour - GERA_PDF

Enviado: 02 Jun 2022 13:55
por Linguagemclipper
Esperava que tivesse algo do Harbour na wiki da lib Haru: https://github.com/libharu/libharu/wiki/Bindings

Exemplos de XHarbour - GERA_PDF

Enviado: 02 Jun 2022 14:28
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.