Générer des graphiques et pdfiser le résultat depuis un fichier texte

Générer des graphiques et pdfiser le résultat depuis un fichier texte - Perl - Programmation

Marsh Posté le 19-11-2008 à 15:09:15    

Hello :d  
 
Ma question est simple, je dois générer des rapports en pdf journaliers contenant des graphiques issus de données de fichiers texte. Pour l'instant, la méthode est la suivante. Avec du code perl et SQL, on récupère le contenu des données dans une base SQL.
 
On rentre ensuite les résultats dans un fichier texte. Ce fichier texte est ensuite utilisé dans du code php (qui va retravailler les données texte pour en faire des graphiques), et via un module php2pdf, permet de pdfiser le résultat obtenu.
 
Ma question est simple : existe-t-il un moyen encore plus simple pour générer des graphiques depuis un fichier de données et d'automatiser la conversion en pdf du résultat ? :d (genre passer par du xml, mettre les bonnes balises qui vont bien pour les graphiques et on n'en parle plus ?)
 
Merci pour vos réponses :d


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 15:09:15   

Reply

Marsh Posté le 19-11-2008 à 15:29:43    

Pour tes graphiques, le module suivant qui en fabrique a partir du contenu d'une BDD ne conviendrait il pas: http://www.presicient.com/dbdchart/
Apres, il faut les encapsuler dans du pdf, mais ca doit pouvoir se faire.
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 19-11-2008 à 15:32:41    

Ah ben oui, ça pourrait déjà faire l'affaire ça :d Je vais m'y pencher un peu plus, pour voir ce que ça donne, merci Gilou :jap:


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 16:04:43    

(Gros noob inside)

 

Comment installer ce module ? Il ne s'installe pas, faut juste l'extraire dans le bon chemin ou l'appeler au bon endroit dans mon code perl ? (no RTFM)

 

Comment obtenir une vue graphique du résultat avec cette lib ? Il faut lancer les commandes SQL décrites dans les exemples, si oui, comment les lancer, faut-il le faire directement dans le code perl en mettant l'appel qui va bien genre :

 

my $blabla = $mabase->prepare("select * from simpline
    returning linegraph(*), imagemap
    where WIDTH=500
    AND HEIGHT=500
    AND X_AXIS='Some Domain'
    AND Y_AXIS='Some Range'
    AND TITLE='Linegraph Test'
    AND SIGNATURE='(C)2002, GOWI Systems'
    AND LOGO='t/gowilogo.png'
    AND FORMAT='PNG'
    AND SHOWGRID=1
    AND LINEWIDTH=4
    AND MAPNAME='simpline'
    AND MAPURL='http://www.gowi.com/cgi-bin/sample.pl?x=:X&y=:Y&z=:Z&plotno=:PLOTNUM'
    AND MAPTYPE='HTML'
    AND COLOR='newcolor'
    AND SHAPE='fillcircle'
    AND SHOWVALUES=1
); pour reprendre le premier exemple? :d

 

Si oui, l'image peut-elle être enregistrée en jpg ou png par la suite ? :d

 

Merci pour votre aide, je patauge un peu (beaucoup) là [:totoz]


Message édité par Thordax le 19-11-2008 à 16:04:53

---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 16:11:05    

Quelques documentations sur les modules :


Pour dbdchart je ne l'ai jamais utilisé, donc je ne sais pas t'aider, mais les exemples sur la page du module semblent indiquer que des images PNG sont générées.

Message cité 1 fois
Message édité par Elmoricq le 19-11-2008 à 16:13:02
Reply

Marsh Posté le 19-11-2008 à 16:12:51    

Yaisse, je me disais bien que c'était ça que mon collègue avait fait sous mes yeux, cpan :d Merci elmomo :jap:


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 16:33:03    

Elmoricq a écrit :

Quelques documentations sur les modules :


Pour dbdchart je ne l'ai jamais utilisé, donc je ne sais pas t'aider, mais les exemples sur la page du module semblent indiquer que des images PNG sont générées.

png gif ou jpeg apparement.
Apres, a la limite, il faut envoyer ca sur une pseudo imprimante pdf pour en recuperer une version pdf (mais il y a peut être plus simple).
A+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 19-11-2008 à 16:37:41    

L'histoire étant que je veux générer le pdf automatiquement, et ceci de manière journalière, donc en n'effectuant pas d'opération manuelle de quelque sorte que ce soit :d

 

Ah, et autre souci, on me réclame la lib GD, que j'ai donc installée (version 2.41 sur le site). (./configure, make et make install).

 

Puis j'installe le package DBD-Chart, et on me sort quand même : You don't have the GD package version 1.13 or later, installed.

 

Dois-je comprendre que j'ai installé le mauvais package GD ? [:klemton]
EDIT : non c'est bon je me suis démerdé avec urpmi.


Message édité par Thordax le 19-11-2008 à 16:48:57

---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 17:56:02    

Pour générer le pdf, voir a la rubrique image de ce module: http://search.cpan.org/~redtree/PD [...] /Simple.pm

Citation :

image src[, %opts]
 
Renders an image onto the PDF. The following image types are supported: JPG, TIFF, PNM, PNG, GIF, and PDF. Note that the module determines the image type by file extension.
 
    * x - The x position of the link. Defaults to x.
    * y - The y position of the link. Defaults to y.
    * width - The width of the image. Defaults to 100.
    * height - The height of the image. Defaults to 100.
    * scale - Amount to scale the image. Defaults to 1. (only available for PDF types)


 
A+,
 


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 19-11-2008 à 17:58:43    

<HS>Gilou, ta signature est horrible. [:joce]</HS>

Reply

Marsh Posté le 19-11-2008 à 17:58:43   

Reply

Marsh Posté le 19-11-2008 à 18:30:10    

Merci Gilou, quasiment sûr que c'est ce qu'il me faut :d Me reste plus que la partie génération de graphique et sortie en jpg et ça devrait être bon :d


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 18:34:37    

Ptain, mais le bouzin veut pas s'installer encore [:arod] [:arod] [:arod]
 
Le perl Makefile.PL me sort :
 
Can't locate inc/Module/Install.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_perl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/perl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl .) at Makefile.PL line 1.
 
Nerf les messages d'erreur incompréhensibles :fou:


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 18:35:52    

Il n'est pas incompréhensible ce message. Il y a la variable PERL "@INC" qui contient la liste des répertoires de modules (équivalent du $LD_LIBRARY_PATH pour les bibliothèques sous Unix).
 
Et ton module n'est pas dans l'un des répertoires listés.

Reply

Marsh Posté le 19-11-2008 à 18:39:01    

Mézalaure, dois-je le rajouter a la mano dans la variable @INC ? [:klemton]


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 19:00:24    

Bon j'ai contourné le problème et utilisé la commande cpan en tant que root, ce qui permet d'installer toutes les dépendances avant d'installer le module qui nous intéresse :d


---------------
Atari 520 ST 256 Ko
Reply

Marsh Posté le 19-11-2008 à 19:49:14    

Installer les modules CPan ou d'ailleurs, c'est toujours un poil aleatoire sous windows, avec ma distrib (active state) quand c'est pas dans la liste qu'ils supportent, des fois ca passe comme une fleur et des fois faut se pogner des compil...
Sous nunux, je suppose que ca passe sans pb ou presque.
Ca m'a encore fait le coup hier quand j'ai installé ptkdb, une interface graphique pour le debugger: c'était presque bon, mais pas completement.
A+,


Message édité par gilou le 19-11-2008 à 19:52:53

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed