voici le code juste pour l'exemple arcdemo du zip.
je travail encore dessus j'ai ajouter des constantes pour la lib.
je vais la mettre sur le forum dès que j'aurrais tout fini.
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