Clipper On Line • Ver Tópico - Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui
Mudar para estilo Clássico
Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.
Postar uma resposta

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

12 Out 2007 04:05

*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:
*******************
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**********************************
********************************************************************************

03 Nov 2007 11:21

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

03 Nov 2007 12:41

Vc viu que tem algumas funções da HWGUI ? tire elas fora, e vc esta linkando a PDFLIB ?

03 Nov 2007 16:23

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

03 Nov 2007 16:27

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?

03 Nov 2007 16:28

como vc esta gerando a LIB da PDF ? esta linkando os dois PRG ? pdf1.prg e pdfhbdocs.prg

03 Nov 2007 16:32

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

03 Nov 2007 16:44

faça um teste usando o hbmake.

03 Nov 2007 17:01

hbmake no meu sistema ou para criar a LIBPDF?

03 Nov 2007 17:15

os dois !

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

17 Jan 2010 00:52

Amigos1

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

Grato pela atenção.

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

17 Jan 2010 01:03

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?

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

17 Mai 2013 15:15

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:
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 ?

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

12 Mar 2020 16:36

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.

Gerando e Abrindo arquivo PDF usando xHarbour+pdflib+Hwgui

27 Fev 2022 11:49

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:
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.
Postar uma resposta