Page 1 sur 1

wrapper HARUpdf help

Publié : mer. 18/juil./2007 14:57
par fraalg
bonjour tout le monde, je suis nouvau sur le forum et je viens d'acquerir une version du superbe langage qu'est le pure (quoique je ne maitrise pas encore tout les tenant de l'affaire) :D , j'ai commencé a faire un wrapper de l'SDK HARU pdf lien : http://libharu.sourceforge.net/index.html
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

Publié : mer. 18/juil./2007 15:14
par fraalg
excusez comment je fais pour uploader un code sur le forum ?

Publié : mer. 18/juil./2007 15:17
par Progi1984
Colle ton code entre les balises [%code%] et [%/code%]
Enlève les %...

Publié : mer. 18/juil./2007 15:58
par Backup
toutefois si ton code est vraiment tres tres long, il se peux que le forum n'arrice pas a tout afficher

2 soluce :
1- tu colle en plusieurs messages, des morceaux de ton code plus petit
(partie1,partie2, ect..)
2- tu utilise un FTP avec un lien sur le forum ... :)

Publié : mer. 18/juil./2007 16:03
par Progi1984
A propos de FTP, tu peux utiliser un FTP dédié aux users PB et déstinés qu'à PB : http://www.penguinbyte.com/apps/pbwebstor/logon.php

Publié : mer. 18/juil./2007 16:15
par fraalg
ok voila le lien pour les sources : http://fleaticia.free.fr/sources.zip

merci dobro,progi1984

Publié : mer. 18/juil./2007 18:47
par Ollivier
@progi1984

Non, j'ai essayé de m'inscrire (Quick registration). Il me répond que c'est impossible. Ce qui est domamge.

Publié : jeu. 19/juil./2007 11:10
par fraalg
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

Publié : mer. 08/août/2007 15:53
par Progi1984
Quelqu'un a les sources du haruPDF.pbi ?

Publié : ven. 10/août/2007 13:00
par fraalg
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

Publié : ven. 10/août/2007 18:53
par Flype
ca a l'air très intéressant mais les liens marchent pas.

Publié : ven. 10/août/2007 18:57
par Backup
il me semble avoir vu sur purearea une lib pour les PDF non ? :?

Publié : ven. 10/août/2007 19:01
par Flype
oui certes, PurePDF :
http://www.purebasicpower.de/?PurePDF

mais c'est bien de pouvoir en tester plusieurs.
PDF m'est très utile au travail, donc j'ai envie de comparer les deux.

Publié : ven. 10/août/2007 22:51
par Progi1984
fraalg m'a filé les sources que je suis en train de réaliser les exemples et donc je suis en train de débugguer les anciennes sources (pas mal de taf)... mais une beta pour début septembre !

Publié : sam. 11/août/2007 18:46
par fraalg
@ progi1984.

fait attention, il y a des constantes que je n'ai pas pu reprendre elles sont marquées comme par exemple :
#HPDF_NOT_INFO_14;----not documented 0x105A
#HPDF_NOT_INFO_14 :veut dire c'est la constante n°14 dont j'arrive pas a trouver le nom.

bon code.