HPDF ERROR FOR DBF TO PDF

General Help regarding HMG, Compilation, Linking, Samples

Moderator: Rathinagiri

Post Reply
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

HPDF ERROR FOR DBF TO PDF

Post by viren092002 »

I AM CONVERTING A DBF FILE TO PDF FILE BY USING HPDF
THIS DBF FILE HAVE ONE FIELD AND THAT FIELD IS WRITTEN LINE BY LINE IN PDF FILE ,
BUT I GET ERROR

MY CODE IS AS UNDER :

#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"

FUNCTION EXPORTTOPDF()

CLOS ALL
USE EDITOR1
*THIS IS DBF FILE AND WILL CONVERTED TO PDF, IT HAS ONLY ONE TEXT FIELD NAMED SLINE

SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4

START HPDFDOC

DO WHIL .T.
P1=1
*THIS IS PAGE LINE COUNTER

START HPDFPAGE

DO WHIL .NOT. EOF()
@P1,1 HPDFPRINT EDITOR1->SLINE FONT "COURIER" SIZE 10
P1=P1+1
SKIP
IF P1>50
*IF PAGE HAS MORE THE 50 LINE THEN CREATE NEW PAGE
EXIT
ENDIF
ENDDO

END HPDFPAGE

IF EOF()
EXIT
ENDIF

ENDDO

END HPDFDOC

EXECUTE FILE "PDFREPO.PDF"

RETU

THIS GIVES ERROR THAT : ERROR DBCMD/2001 : WORK AREA NOT IS USE : DBGOTO

WHAT IS ERROR IN THIS, PLEASE HELP
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: HPDF ERROR FOR DBF TO PDF

Post by franco »

You have not started new print page if > 50. Your start is before do while.
I would do this different but I your case I think.
After
IF EOF()
EXIT
ENDIF
START HPDFPAGE
LOOP
I did not try but give a try.
Franco
All The Best,
Franco
Canada
User avatar
andyglezl
Posts: 1461
Joined: Fri Oct 26, 2012 7:58 pm
Location: Guadalajara Jalisco, MX
Contact:

Re: HPDF ERROR FOR DBF TO PDF

Post by andyglezl »

mmmm.... Yo lo harìa en 2 partes
*---------------------------------------------
mmmm .... I would do it in 2 parts

Code: Select all

#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"

FUNCTION EXPORTTOPDF()
	LOCAL cSLine := "", i1 := 0, aHoja := {}
	
	USE EDITOR1
	DBGoTop()
	DO WHILE .NOT. EOF()
		cSLine := cSLine + SLINE + HB_OsNewLine()
		SKIP
		i1++
		IF i1 = 50 .OR. EOF()
			AAdd( aHoja, cSLine )
			i1 := 0
			cSline := ""
		ENDIF
	ENDDO
	
	SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
	START HPDFDOC
		FOR i1 = 1 TO HMG_LEN( aHoja )
			START HPDFPAGE
				@ 1,1 HPDFPRINT aHoja[i1] FONT "COURIER" SIZE 10
			END HPDFPAGE
		NEXT
	END HPDFDOC
	EXECUTE FILE "PDFREPO.PDF"
RETURN

P.D. No lo he probado
*------------------------------------
P.S. I have not tried it
Andrés González López
Desde Guadalajara, Jalisco. México.
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: HPDF ERROR FOR DBF TO PDF

Post by franco »

Try this,

Code: Select all

#include <hmg.ch>
#INCLUDE "HFCL.CH"

FUNCTION EXPORTTOPDF()
	LOCAL pline := 5, page := 1
	
	USE EDITOR1           // OR ANY TABLE
	DBGoTop()
	SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
	START HPDFDOC
	START HPDFPAGE
	@ pline, 100 hpdfprint 'New Report'
	pline := pline + 5
	do while ! eof()
		@ pline,5 hpdfprint EDITOR1->SLINE size 10           // OR ANY FIELD FROM TABLE
		skip
		if pline >= 270 .and. ! eof()
			@ pline + 12,100 hpdfprint 'Continued Page ' +alltrim(str(page+1)) 
			page:=page+1
			END HPDFPAGE
			START HPDFPAGE
			pline := 5
			loop
		else
			pline := pline+5
			loop 
		endif
	enddo
	@ pline+5,100 hpdfprint ' End of Report'
	END HPDFPAGE
	END HPDFDOC
	EXECUTE FILE "PDFREPO.PDF"

Return
Works in w10 hmg3.4.4

WOOPS FORGOT TO CHANGE NAME FIELD TO EDITOR1->SLINE
Franco
All The Best,
Franco
Canada
franco
Posts: 877
Joined: Sat Nov 02, 2013 5:42 am
DBs Used: DBF
Location: Canada

Re: HPDF ERROR FOR DBF TO PDF

Post by franco »

You can also use the following. I use the second one for my business reports with pictures (you no not need hpdfprint.

Code: Select all

#include <hmg.ch>
*#INCLUDE "HFCL.CH"

EXPORTTOPD1()
EXPORTTOPD()
RETURN

FUNCTION EXPORTTOPD
	LOCAL pline := 5, page := 0

	USE EDITOR1
	DBGoTop()
	SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
	START HPDFDOC
	START HPDFPAGE
	@ pline, 100 hpdfprint 'New Report' size 12
	pline := pline + 5
	do while ! eof()
		@ pline,8 hpdfprint sline size 10
		skip
		if pline >= 270 .and. ! eof()
			@ pline + 12,100 hpdfprint 'Continued Page ' +alltrim(str(page+1))
			page:=page+1
			END HPDFPAGE
			START HPDFPAGE
			pline := 5
			loop
		else
			pline := pline+5
			loop 
		endif
	enddo
	@ pline+5,100 hpdfprint ' End of Report'
	END HPDFPAGE

	END HPDFDOC
	close editor1
	EXECUTE FILE "PDFREPO.PDF"

Return


FUNCTION EXPORTTOPD1
	LOCAL pline := 5, page := 1, pdp := '', lsuccess:= '', plen := 250
	
	USE EDITOR1
	DBGoTop()
	pdp := 'PDFREPO1.pdf'
	IF MSGYESNO('Do you Want To PDF (Y/N) ? ')
		SELECT PRINTER PDF PDP TO LSUCCESS      
		IF ! lSuccess .OR. LEN(ALLTRIM(PDP)) < 1
			MSGINFO('PDF File Not Available')
			RETURN
		ENDIF
		PLEN :=260

	ELSE
		SELECT  PRINTER DEFAULT TO lSUCCESS preview ;
		ORIENTATION PRINTER_ORIENT_PORTRAIT ;
		PAPERSIZE PRINTER_PAPER_LETTER ;
		QUALITY PRINTER_RES_MEDIUM	
		IF LSUCCESS == .F.
			MSGINFO('Printer Not Available')
			RETURN
		ENDIF
		PLEN := 250
	ENDIF

		START PRINTDOC
		START PRINTPAGE 
	 
	@ pline, 100 print 'New Report' size 12
	pline := pline + 5
	do while ! eof()
		@ pline,5 print sline size 10
		skip
		if pline >= plen .and. ! eof()
			@ pline + 12,100 print 'Continued Page ' +alltrim(str(page+1)) size 10
			page:=page+1
			END PRINTPAGE  
			START PRINTPAGE 
			pline := 5
			loop
		else
			pline := pline+5
			loop 
		endif
	enddo
	@ pline+5,100 print ' End of Report' size 10
	END PRINTPAGE 

	END PRINTDOC 
	close editor1
	if plen = 260                 // pdf print when 270   FIXED ERROR HERE WAS 270 CHANGED TO 260
		EXECUTE FILE "PDFREPO1.PDF"
	endif

Return
Last edited by franco on Wed Apr 22, 2020 7:14 pm, edited 1 time in total.
All The Best,
Franco
Canada
User avatar
dragancesu
Posts: 930
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia

Re: HPDF ERROR FOR DBF TO PDF

Post by dragancesu »

I do not use creating pdf directly, it is easily solved by using pdf printer

this demo creates a report, enough to see where you are wrong
Attachments
test.zip
(3.83 KiB) Downloaded 138 times
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: HPDF ERROR FOR DBF TO PDF

Post by viren092002 »

dragancesu wrote: Wed Apr 22, 2020 10:29 am I do not use creating pdf directly, it is easily solved by using pdf printer

this demo creates a report, enough to see where you are wrong
RESPECTED BROTHER

A POWERFULL SOFTWARE DOES NOT REQUIRE ANY PDF PRINTER , IT CAN PRINT ITSELF TO PDF WITHOUT ANY EXTRA SOFTWARE

I AM CREATING A PROGRAM WHICH CAN EXPORT REPORT TO EXCEL FILE, PDF FILE, TEXT FILE , HTML FILE AND WORD FILE

REPORT CAN BE PREPARED IN ONE DBF FILE AND THEN SHOWN BY USING GRID CONTROL, THEN IT CAN BE EXPORTED TO ALL THIS FORMATS

BUT I GET ERROR IN PDF FORMAT
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: HPDF ERROR FOR DBF TO PDF

Post by viren092002 »

andyglezl wrote: Tue Apr 21, 2020 5:10 pm mmmm.... Yo lo harìa en 2 partes
*---------------------------------------------
mmmm .... I would do it in 2 parts

Code: Select all

#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"

FUNCTION EXPORTTOPDF()
	LOCAL cSLine := "", i1 := 0, aHoja := {}
	
	USE EDITOR1
	DBGoTop()
	DO WHILE .NOT. EOF()
		cSLine := cSLine + SLINE + HB_OsNewLine()
		SKIP
		i1++
		IF i1 = 50 .OR. EOF()
			AAdd( aHoja, cSLine )
			i1 := 0
			cSline := ""
		ENDIF
	ENDDO
	
	SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4
	START HPDFDOC
		FOR i1 = 1 TO HMG_LEN( aHoja )
			START HPDFPAGE
				@ 1,1 HPDFPRINT aHoja[i1] FONT "COURIER" SIZE 10
			END HPDFPAGE
		NEXT
	END HPDFDOC
	EXECUTE FILE "PDFREPO.PDF"
RETURN

P.D. No lo he probado
*------------------------------------
P.S. I have not tried it
YES BROTHER, I HAVE TO WORK IN THIS METHOD TO GET CORRECT RESULT

I HAVE MODIFY MY CODE AS UNDER AND GET CORRECT RESULT

#INCLUDE "HMG.CH"
#INCLUDE "HFCL.CH"

FUNCTION EXPORTTOPDF()

CLOS ALL
USE EDITOR1
V:={}
DL=0
DO WHIL .NOT. EOF()
AADD(V,SLINE)
*HERE SLINE IS FIELD OF DBF FILE EDITOR1
DL=DL+1
SKIP
ENDDO
LDL=DL
DL=1
P1:=5

SELECT HPDFDOC "PDFREPO.PDF" PAPERSIZE HPDF_PAPER_A4

START HPDFDOC
START HPDFPAGE

DO WHIL DL<=LDL

@P1,5 HPDFPRINT V[DL] FONT "Courier" SIZE 10
P1:=P1+5
DL:=DL+1

IF P1 >= 270
END HPDFPAGE
START HPDFPAGE
P1:=5
ENDIF

ENDDO

END HPDFPAGE
END HPDFDOC

EXECUTE FILE "PDFREPO.PDF"


BY READING THIS I AM COME TO DECISSION THAT WE CAN NOT USE DBF FILE COMMAND LIKE SEEK OR DBSEEK() WITH HPDF LIBRARY, THE CODE NOT WORK, BUT WHEN I HAVE MODIFIED THIS AS WRITTEN ABOVE, I GET CORRET RESULT
viren092002
Posts: 17
Joined: Mon Apr 01, 2013 12:15 pm

Re: HPDF ERROR FOR DBF TO PDF

Post by viren092002 »

I WANT TO SHARE ONE MORE LITTLE KNOWLEDGE, PLEASE WRITE IN BUILT FONT NAME AS SPECIFIED IN HPDF HELP FILE

I AM WRITING FONT NAME "COURIER" BUT IT DOES NOT WORK
NOW I WRITE "Courier", THEN IT WORKS
Post Reply