Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por sygecom »

*Abaixo um exemplo simple de Geração de PDF apartir de um arquivo TEXTO...pode ser usada em modo console, basta tirar as função da HWGUI e tem que linkar a PDFLIB.LIB da CONTRIB.

Código: Selecionar todos

*******************
FUNC GERA_PDF(cARQ)
*******************
Private AMSG, CIMG
PRIVATE oDlgHabla:=NIL
AMSG := {}
set(105,1)
set(106,1)

IF cARQ=Nil
   cARQ="TEMP.PRN"
Endif

MsgRun("Aguarde Gerando Documento PDF...")

cFILE3 := "TESTE.PDF"

vARQ:={}
aadd( vARQ, {"LINHA","C",200,0} )
DBcreate("TEMP", vARQ,"DBFCDX")

SELE 40
USE TEMP new shar VIA "DBFCDX"
append from (cARQ) sdf

PdfNew(cFile3,8,842,595,1,1,,,)
PdfStartPage( {""} , .T. )

dbgotop()
cCONT=0
Do while !eof()
   cLinha := Linha           // Busca linha de impressao
   cCONT=cCONT+1
   Aadd(AMSG,cLinha)

   IF cCONT=60  // nova pagina
      PdfDrawPage( AMSG )
      PdfEndPage()
      PdfStartPage( {""} , .T. )
      cCONT=0
   ENDIF
   dbskip()
enddo

PdfDrawPage( AMSG )
PdfEndPage()
PdfEnd()
IF oDlgHabla#NIL
  oDlgHabla:CLOSE()
ENDIF
Abre_aqrquivo( cFile3 )
return nil

********************************************************************************
***************INCIO DA FUNCAO DE ABRIR ARQUIVOS********************************
********************************************************************************
// Open help file with associated viewer application
FUNCTION Abre_aqrquivo( 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
********************************************************************************
***************FIM DA FUNCAO DE ABRIR ARQUIVOS**********************************
********************************************************************************
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

Caro Leonardo,

näo sei se aqui é o lugar correto para tirar dúvida sobre esse código que você postou, mas quando tento compilá-lo dá a sequinte mensagem de erro:

Error: Unresolved external '_HB_FUN_FILESIZE' referenced from C:\XHARBOUR\LIB\LI
BPDF.LIB|pdf1

Você sabe oque pode ser? estou usando xharbour 1.1 com GTWVW, mas esse mesmo erro está dando tb no xharbour 0.71.

Muito Obrigado
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Vc viu que tem algumas funções da HWGUI ? tire elas fora, e vc esta linkando a PDFLIB ?
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

eu tirei sim as funçöes da HWGUI...

estou linkando a LIBPDF.LIB(pelo menos é esse o nome que está no meu contrib e näo PDFLIB.LIB)

esse pdf1 é um arquivo que está dentro da contrib
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

esses säo meus includes

#include 'inkey.ch'
#include "gtinfo.ch"
#include "c:\xharbour\contrib\what32\include\winuser.ch"
#include "c:\xharbour\contrib\pdflib\pdf.ch"
#include "c:\xharbour\contrib\pdflib\pdfhbdoc.ch"
#include "common.ch"
#include "hbclass.ch"

e essas sao as LIBs que eu uso

LIBS=$(BCCDIR)\LIB\c0w32.obj \
$(HARBOURDIR)\lib\rtl.lib \
$(HARBOURDIR)\lib\vm.lib \
$(HARBOURDIR)\lib\gtwvw.lib \
$(HARBOURDIR)\lib\lang.lib \
$(HARBOURDIR)\lib\macro.lib \
$(HARBOURDIR)\lib\rdd.lib \
$(HARBOURDIR)\lib\dbfcdx.lib \
$(HARBOURDIR)\lib\dbfntx.lib \
$(HARBOURDIR)\lib\hbsix.lib \
$(HARBOURDIR)\lib\dbffpt.lib \
$(HARBOURDIR)\lib\common.lib \
$(HARBOURDIR)\lib\libnf.lib \
$(HARBOURDIR)\lib\hbzip.lib \
$(HARBOURDIR)\lib\lib_xhb.lib \
$(HARBOURDIR)\lib\pp.lib \
$(HARBOURDIR)\lib\codepage.lib \
$(HARBOURDIR)\lib\debug.lib \
$(HARBOURDIR)\lib\pcrepos.lib \
$(HARBOURDIR)\lib\what32.lib \
$(HARBOURDIR)\lib\libpdf.lib \
$(BCCDIR)\lib\cw32.lib \
$(BCCDIR)\lib\import32.lib\

será que tá faltando alguma LIB ou Include?
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

como vc esta gerando a LIB da PDF ? esta linkando os dois PRG ? pdf1.prg e pdfhbdocs.prg
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

essa LIb é gerada quando eu executo o makallbc.bat da pasta do xharbour
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

faça um teste usando o hbmake.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Luciano Bonfim
Usuário Nível 3
Usuário Nível 3
Mensagens: 414
Registrado em: 23 Ago 2007 09:34
Localização: Rio de Janeiro / São Paulo
Contato:

Mensagem por Luciano Bonfim »

hbmake no meu sistema ou para criar a LIBPDF?
Muito Obrigado,

Luciano Bonfim de Azevedo
www.bonfim.com.br
luciano@bonfim.com.br
www.linkedin.com/in/lucianobonfim
Skype : lucianobonfim
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

os dois !
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por clodoaldomonteiro »

Amigos1

To reabrindo esse tópico pq queria saber como coloco imagens em um PDF com a LIBPDF?

Grato pela atenção.
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Avatar do usuário
clodoaldomonteiro
Usuário Nível 4
Usuário Nível 4
Mensagens: 821
Registrado em: 30 Dez 2006 13:17
Localização: Teresina-PI
Contato:

Re: Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por clodoaldomonteiro »

Vi no arquivo PDF1.PRG que existe um Metold PDFImage(), mas só q quando eu o chamo na aplicação, o compilador diz q ela não existe.
Será q devo compilar a lib novamente?
E como compilar?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por lugab »

Também tentei, mas não consegui fazer funcionar. Tentei com o xharour 1.0.0 e o 1.1.0

Acho que é o mesmo problema de todos, né ?. O PDF1.prg...

Código: Selecionar todos

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN___DBGENTRY' referenced from D:\MAX\XVSIGT\PDFLIB.LIB|pdf1

Será que alguma outra alma generosa daqui o fórum , como o Leonardo - que sempre está nos ajudando - pode postar um outro código para gente conseguir gerar um arquivo PDF a partir de um TXT ?
lugab
sasquast
Usuário Nível 1
Usuário Nível 1
Mensagens: 29
Registrado em: 31 Jul 2019 16:47
Localização: Volta Redonda / RJ

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por sasquast »

Pessoal,

Graças a ajuda de vocês eu estou conseguindo gerar o PDF agora, nativamente, porem estou apanhando demais com os comandos, coisas simples como, centralizar o texto, alinhar a direita, o simples fato de pular pra linha de baixo está dando trabalho quando isso está dentro de um loop onde eu não tenho como fixar a linha onde vou escrever o texto.
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:

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

Mensagem por Linguagemclipper »

Estou querendo visualizar um relatório em PDF na tela nativamente no xHarbour sem precisar recorrer a outros programas.
Tentei compilar o exemplo lá em cima, mas deu erro. Estou usando o xharbour v1.2.1.

Código: Selecionar todos

CINI = 
C_OUTPUTFOLDER = 
DEFFILE = 
INCLUDEFOLDERS = I:\xharbour\include;
LAUTORUN = 
LDEBUG = .F.
LGUI = .F.
LIBFOLDERS = I:\xharbour\lib;
LMT = .F.
LNOAUTOFWH = .F.
LPRG_CLASSICDEBUG = .F.
LPRG_DEBUG = .F.
LUSEDLL = .F.
MAPFILE = 
MYC_FLAGS = 
MYDEFINES = 
MYLINK_FLAGS = 
MYPRG_FLAGS = 
MYRC_FLAGS = 
MYSLY_FLAGS = 
OUTPUTFOLDER = 
PRG_OUTPUTFOLDER = 
RC_OUTPUTFOLDER = 
RUNARGUMENTS = 
SLY_OUTPUTFOLDER = 
STARTIN = 
TARGETFOLDER = 

[abrepdf.prg]
MYC_FLAGS = 
MYDEFINES = 
MYPRG_FLAGS = 

[I:\xharbour\lib\hbhpdf.lib]

[I:\xharbour\lib\pdflib.lib]
Linkei as libs contendo "pdf", mas dá erro:
xHarbour Compiler build 1.2.1 (SimpLex) (Rev. 6733)
Copyright 1999-2010, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'ABREPDF.PRG'...

Lines 68, Functions/Procedures 2
Generating C source output to 'obj\ABREPDF.c'...
Done.

Building object module for 'obj\ABREPDF.c'
using C compiler 'BCC32' as defined in 'I:\XHARBOUR\BIN\harbour.cfg'...
Exec: BCC32 -c -D__EXPORT__ -II:\XHARBOUR\include -d -LI:\XHARBOUR\lib -oobj\ABREPDF.obj obj\ABREPDF.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
obj\abrepdf.c:
Error E2046 ABREPDF.PRG 71: Bad file name format in include directive
Error E2451 ABREPDF.PRG 74: Undefined symbol 'HINSTANCE' in function HB_FUN__OPENHELPFILE
Error E2379 ABREPDF.PRG 74: Statement missing ; in function HB_FUN__OPENHELPFILE
Error E2451 ABREPDF.PRG 75: Undefined symbol 'LPCTSTR' in function HB_FUN__OPENHELPFILE
Error E2379 ABREPDF.PRG 75: Statement missing ; in function HB_FUN__OPENHELPFILE
Error E2379 ABREPDF.PRG 76: Statement missing ; in function HB_FUN__OPENHELPFILE
Error E2451 ABREPDF.PRG 77: Undefined symbol 'hInst' in function HB_FUN__OPENHELPFILE
Error E2451 ABREPDF.PRG 77: Undefined symbol 'lpHelpFile' in function HB_FUN__OPENHELPFILE
Error E2451 ABREPDF.PRG 77: Undefined symbol 'lpPath' in function HB_FUN__OPENHELPFILE
Error E2451 ABREPDF.PRG 77: Undefined symbol 'SW_SHOW' in function HB_FUN__OPENHELPFILE
Warning W8065 ABREPDF.PRG 77: Call to function 'ShellExecute' with no prototype in function HB_FUN__OPENHELPFILE
*** 10 errors in Compile ***
Done.
Deleting: "obj\ABREPDF.c"
Done.
Usando xHarbour v1.2.3 Rev. 10264 + BCC 5.8, Elchs' LetoDBf, DBFCDX e SIBRA para imprimir relatórios.
Responder