
je poste ici mon code pour ceux qui veulent bien m'aider a le tester merci bcps.
attention cette include est encore tres instable il me manque quelques trucs / cnnaissances pour la finir.
je n'arrive pas a poster tout mon code comment faire
Code : Tout sélectionner
;-------------------------------includes
XIncludeFile "haruPDF.pbi"
;------------------------------- variables
Global pdf.l,page.l
Global *pos.HPDF_Point
Global error_handler.l
;--------------------------- procedures
Procedure print_grid (pdf.l, page.l)
Protected height.f, width.f, f.l ,x.l ,y.l
height = HPDF_Page_GetHeight (page)
width = HPDF_Page_GetWidth (page)
font = HPDF_GetFont (pdf, @"Helvetica", Null)
HPDF_Page_SetFontAndSize (page, font, 5)
HPDF_Page_SetGrayFill (page, 0.5)
HPDF_Page_SetGrayStroke (page, 0.8)
; Draw horizontal lines
y = 0;
While y < height
If y % 10 = 0
HPDF_Page_SetLineWidth (page, 0.5)
Else
If HPDF_Page_GetLineWidth (page) <> 0.25
HPDF_Page_SetLineWidth (page, 0.25)
EndIf
EndIf
HPDF_Page_MoveTo (page, 0, y)
HPDF_Page_LineTo (page, width, y)
HPDF_Page_Stroke (page)
If y % 10 = 0 And y > 0
HPDF_Page_SetGrayStroke (page, 0.5)
HPDF_Page_MoveTo (page, 0, y)
HPDF_Page_LineTo (page, 5, y)
HPDF_Page_Stroke (page)
HPDF_Page_SetGrayStroke (page, 0.8)
EndIf
y = y + 5
Wend
; Draw virtical lines
x = 0
While x < width
If x % 10 = 0
HPDF_Page_SetLineWidth (page, 0.5)
Else
If HPDF_Page_GetLineWidth (page) <> 0.25
HPDF_Page_SetLineWidth (page, 0.25)
EndIf
EndIf
HPDF_Page_MoveTo (page, x, 0)
HPDF_Page_LineTo (page, x, height)
HPDF_Page_Stroke (page)
If x % 50 = 0 And x > 0
HPDF_Page_SetGrayStroke (page, 0.5)
HPDF_Page_MoveTo (page, x, 0)
HPDF_Page_LineTo (page, x, 5)
HPDF_Page_Stroke (page)
HPDF_Page_MoveTo (page, x, height)
HPDF_Page_LineTo (page, x, height - 5)
HPDF_Page_Stroke (page)
HPDF_Page_SetGrayStroke (page, 0.8)
EndIf
x =x + 5
Wend
;Draw horizontal text
y = 0
While y < height
If (y % 10 = 0 And y > 0)
*buff = #Null
*buff = AllocateMemory(4)
HPDF_Page_BeginText (page)
HPDF_Page_MoveTextPos (page, 5, y - 2)
PokeS(*buff,Str(y))
HPDF_Page_ShowText (page, PeekS(*buff));
HPDF_Page_EndText (page)
EndIf
y = y + 5
Wend
; Draw virtical text
x = 0
While x < width
If x % 50 = 0 And x > 0
*buff = #Null
*buff = AllocateMemory(4)
HPDF_Page_BeginText (page)
PokeS(*buff,Str(x))
HPDF_Page_MoveTextPos (page, x, 5)
HPDF_Page_ShowText (page, PeekS(*buff))
HPDF_Page_EndText (page)
*buff = #Null
*buff = AllocateMemory(4)
HPDF_Page_BeginText (page)
PokeS(*buff,Str(x))
HPDF_Page_MoveTextPos (page, x, height - 10)
HPDF_Page_ShowText (page, PeekS(*buff))
HPDF_Page_EndText (page)
EndIf
x =x + 5
Wend
HPDF_Page_SetGrayFill (page, 0)
HPDF_Page_SetGrayStroke (page, 0)
EndProcedure
;------------------------- programme
If haruPDF_Init()
pdf = HPDF_New(error_handler,#Null)
; add a new page object.
page = HPDF_AddPage (pdf)
HPDF_Page_SetHeight (page, 220)
HPDF_Page_SetWidth (page, 200)
;draw grid To the page
; draw pie chart
print_grid (pdf, page)
;A
HPDF_Page_SetRGBFill (page, 1.0, 0, 0)
HPDF_Page_MoveTo (page, 100, 100)
HPDF_Page_LineTo (page, 100, 180)
HPDF_Page_Arc (page, 100, 100, 80, 0, 360 * 0.45)
*pos = HPDF_Page_GetCurrentPos (page)
HPDF_Page_LineTo (page, 100, 100)
HPDF_Page_Fill (page)
;B
HPDF_Page_SetRGBFill (page, 0, 0, 1.0)
HPDF_Page_MoveTo (page, 100, 100)
HPDF_Page_LineTo (page, @*pos\x, @*pos\y)
HPDF_Page_Arc (page, 100, 100, 80, 360 * 0.45, 360 * 0.7)
*pos =HPDF_Page_GetCurrentPos (page)
HPDF_Page_LineTo (page, 100, 100)
HPDF_Page_Fill (page)
;
; ; C
HPDF_Page_SetRGBFill (page, 0, 1.0, 0)
HPDF_Page_MoveTo (page, 100, 100)
HPDF_Page_LineTo (page, @*pos\x, @*pos\y)
HPDF_Page_Arc (page, 100, 100, 80, 360 * 0.7, 360 * 0.85)
*pos =HPDF_Page_GetCurrentPos (page)
HPDF_Page_LineTo (page, 100, 100)
HPDF_Page_Fill (page)
;
; ; D
HPDF_Page_SetRGBFill (page, 1.0, 0.8, 0.4)
HPDF_Page_MoveTo (page, 100, 100)
HPDF_Page_LineTo (page, @*pos\x, @*pos\y)
HPDF_Page_Arc (page, 100, 100, 80, 360 * 0.85, 360)
*pos =HPDF_Page_GetCurrentPos (page)
HPDF_Page_LineTo (page, 100, 100)
HPDF_Page_Fill (page)
;
;draw center circle
HPDF_Page_SetGrayStroke (page, 0)
HPDF_Page_SetGrayFill (page, 1)
HPDF_Page_Circle (page, 100, 100, 30)
HPDF_Page_Fill(page)
;save the document To a file
HPDF_SaveToFile(pdf, "arc_haru.pdf")
;clean up
HPDF_Free(pdf)
Else
Debug "la dll n'est pas la"
EndIf
fraalg a écrit :ok voila le lien pour les sources : http://fleaticia.free.fr/sources.zip
mes excuses le lien n'est plus actif.(10/08/2007)
merci dobro,progi1984