[RESOLU] Créer un document RTF avec du PHP

Créer un document RTF avec du PHP [RESOLU] - PHP - Programmation

Marsh Posté le 21-06-2006 à 12:20:45    

Bonjour,  
 
Je me retrouve dans un cas chiant je suis en train de faire un intranet et les employés ont besoin de générer des documents à partir des infos de ma bd. Je fais ça en pdf grâce à fpdf, tout roule bien.
Mais là, cas spécial, la personne a besoin de générer un document qu'elle devra modifier.
J'ai donc penser au format RTF (si ce n'est pas un bon choix n'hésiter pas à me le dire).
 
J'ai donc fait des recherches la dessus, mais peu de reponses. Des librairies existent mais sont payantes, je crois trouver obligatoirement une solution gratuite.
j'ai trouvé une fonction permettant de convertir du code html en rtf mais je n'arrive pas à l'utiliser

Code :
  1. function html2rtf ( $html ) {
  2. $startpos = strpos($html,'<');
  3. $rtf = '';
  4. while ( $startpos !== false ) {
  5. // get tag
  6. $endpos = strpos($html,'>',$startpos);
  7. if ($endpos !== false) {
  8. $tag = substr($html,$startpos+1,$endpos - $startpos - 1);
  9. $rtf .= substr($html,0,$startpos);
  10. switch (strtoupper($tag)) {
  11. case 'P':
  12. break;
  13. case '/P':
  14. $rtf .= ' \par ';
  15. break;
  16. case 'BR':
  17. $rtf .= ' \line ';
  18. break;
  19. case 'B':
  20. $rtf .= '{\b ';
  21. break;
  22. case '/B':
  23. $rtf .= '}';
  24. break;
  25. case 'STRONG':
  26. $rtf .= '{\b ';
  27. break;
  28. case '/STRONG':
  29. $rtf .= '} ';
  30. break;
  31. case 'I':
  32. $rtf .= '{\i ';
  33. break;
  34. case '/I':
  35. $rtf .= '}';
  36. break;
  37. case 'EM':
  38. $rtf .= '{\i ';
  39. break;
  40. case '/EM':
  41. $rtf .= '}';
  42. break;
  43. case 'U':
  44. $rtf .= '{\ul ';
  45. break;
  46. case '/U':
  47. $rtf .= '}';
  48. break;
  49. case 'OL':
  50. $listnumber = 1;
  51. $listtype = 'number';
  52. break;
  53. case '/OL':
  54. break;
  55. case 'UL':
  56. $listtype = 'bullet';
  57. break;
  58. case '/UL':
  59. break;
  60. case 'LI':
  61. switch ($listtype) {
  62. case 'number':
  63. $bullet = "$listnumber.";
  64. $listnumber++;
  65. break;
  66. default:
  67. $bullet = '\bullet ';
  68. break;
  69. }
  70. $rtf .= ' \fi-400\li400{'. $bullet .'\tab ';
  71. break;
  72. case '/LI':
  73. $rtf .= '}\par ';
  74. break;
  75. case '/TD':
  76. $rtf .= ' ';
  77. break;
  78. case '/TR':
  79. $rtf .= ' \par ';
  80. break;
  81. }
  82. $html = substr($html, $endpos + 1);
  83. $startpos = strpos($html,'<');
  84. } else {
  85. $startpos = false;
  86. }
  87. }
  88. // append remaining text
  89. $rtf .= $html;
  90. return $rtf;
  91. }

 
 
Je ne sais pas comment faire pour créer un document. Avec fpdf, le document n'est pas créer, juste affiché, d'après ce que j'ai compris avec cette fonction, il faut au préalable avoir un document rtf et le modifier.
 
Enfin bref, je ne sais pas trop comment m'y prendre pour faire ce truc
Si vous avez des idées ou des pistes elles sont les bienvenues, elles pourront au moins m'aider à éguiller mes recherches...
 
Merci par avance,  
 
Karine :hello:
 
Edit :  
Mon document final doit être un tableau où chaque ligne doit être une occurence de ma table :s


Message édité par karinou le 27-06-2006 à 08:48:42
Reply

Marsh Posté le 21-06-2006 à 12:20:45   

Reply

Marsh Posté le 21-06-2006 à 12:30:34    

fais un .txt, c'est beaucoup plus facile ! :)
 
regarde fopen() avec comme option a+
http://fr2.php.net/manual/fr/function.fopen.php
 
;)
 
Edit : ouuups, pour faire un tableau, ça pas être gérable...dsl. :(


Message édité par Glock21 le 21-06-2006 à 12:31:17

---------------
Je donne souvent l'air d'être ailleurs, mais en faite, je ne suis nulle part...
Reply

Marsh Posté le 21-06-2006 à 13:12:49    

J'ai trouvé ça :
http://www.smartsystems.ro/products.html
( http://www.smartsystems.ro/rtfgen/rtfgen_be.zip )


Message édité par gooopil le 21-06-2006 à 13:13:05
Reply

Marsh Posté le 21-06-2006 à 14:13:40    

Merci de m'avoir répondu
 
Glock21 > Et oui, il faut que je fasse de la mise en page
 
gooopil > C'est aussi la classe que j'ai trouvé mais en fait elle n'est pas libre et juste en dessous de ton lien il y a les prix ....

Reply

Marsh Posté le 21-06-2006 à 14:32:02    

http://www.wotsit.org/ puis Search > rtf [:aras qui rit]
 
Le doc est pas tout petit, maintenant des infos utiles y'en a pas besoin de beaucoup et ça se trouve vite (tu peux déjà t'inspirer de la classe que tu as postée)
 
 
Sinon ça serait pas + simple de générer directement ton rtf depuis les infos de la base, et non pas depuis une page html ?

Reply

Marsh Posté le 21-06-2006 à 14:47:45    

LKoLRn > Merci beaucoup de m'avoir répondu je suis en train de regarder le site.
 
Et en effet, ca serait possible si j'avais une possibilité de générer directement le rtf depuis les infos de la base mais je ne sais pas trop comment faire.
J'utilise phpmyadmin et j'ai essayé de faire exporter j'obtiens bien un tableau avec les infos que je veux mais y a t'il possibilité de choisir comment on veut affig=cher les infos avec de générer le document? Par exemple, il y a n champ que je ne veux pas avoir dans mon tableau rtf.
Merci beaucoup en tout cas, ta reponse m'aide bien


Message édité par karinou le 21-06-2006 à 14:50:02
Reply

Marsh Posté le 26-06-2006 à 11:20:38    

UP :$

Reply

Marsh Posté le 26-06-2006 à 11:34:23    

Sur phpmyadmin, tu peux faire un export des résultats d'une requête. Donc à toi de contruire un nouveau tableau avec les champs que tu désires puis de l'exporter.
Ensuite automatise le truc pour ne pas avoir à le faire manuellement.

Reply

Marsh Posté le 26-06-2006 à 12:02:16    

Citation :

Sur phpmyadmin, tu peux faire un export des résultats d'une requête. Donc à toi de contruire un nouveau tableau avec les champs que tu désires puis de l'exporter.


Qu'appelle tu un tableau? Une nouvelle table dans ma base ou un tableau dans mon document rtf?
 

Citation :

Ensuite automatise le truc pour ne pas avoir à le faire manuellement.


En php?
 
Je vois pas trop ce que tu veux dire en fait?
Je ne vois pas trop la demarche à faire?
Dois-je créer un document rtf avec un tableau vide? puis ensuite le modifier en php?

Reply

Marsh Posté le 26-06-2006 à 12:08:01    

karinou a écrit :

Citation :

Sur phpmyadmin, tu peux faire un export des résultats d'une requête. Donc à toi de contruire un nouveau tableau avec les champs que tu désires puis de l'exporter.


Qu'appelle tu un tableau? Une nouvelle table dans ma base ou un tableau dans mon document rtf?
 

Citation :

Ensuite automatise le truc pour ne pas avoir à le faire manuellement.


En php?
 
Je vois pas trop ce que tu veux dire en fait?
Je ne vois pas trop la demarche à faire?
Dois-je créer un document rtf avec un tableau vide? puis ensuite le modifier en php?


Je parlais d'un table en effet ;)
Mais c'était en relation directe avec ce que tu demandais juste avant, càd gérer les éléments que tu voulais exporter via phpmyadmin.  
Et si je parlais d'automatiser, c'était parce que moi, j'aurais essayer de le faire (mais je ne le ferais pas à ta place et c'est pas forcément nécéssaire).

Reply

Marsh Posté le 26-06-2006 à 12:08:01   

Reply

Marsh Posté le 26-06-2006 à 13:44:14    

bonjour,
 
tu peux aussi utiliser cette classe : http://pnine.free.fr/rtf2php/doc.html
 
Voila :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 27-06-2006 à 08:48:08    

stef_dober mann > Merci beaucoup en effet cette classe permet exactement de faire ce que je désire, je suis un peu en train de galérer pour présenter mes tableaux mais sinon ca gère bien, elle est puissante.
 
Sauf un petit truc, quand je clique sur le lien qui permet de lancer mon export, j'ai la fenetre qui me demande si je veux enregistrer mon fichier ou l'ouvrir qui s'ouvre. Si je demande de l'enregistrer, ça m'enregistre mon fichier php. Mais bon c'est un détail, je vais trouver la solution.
 
En tout cas, vraiment merci à toutes les personnes qui se sont penchés à mon problème. :hello:

Message cité 1 fois
Message édité par karinou le 27-06-2006 à 08:48:20
Reply

Marsh Posté le 18-03-2008 à 13:23:17    

karinou a écrit :

stef_dober mann > Merci beaucoup en effet cette classe permet exactement de faire ce que je désire, je suis un peu en train de galérer pour présenter mes tableaux mais sinon ca gère bien, elle est puissante.
 
Sauf un petit truc, quand je clique sur le lien qui permet de lancer mon export, j'ai la fenetre qui me demande si je veux enregistrer mon fichier ou l'ouvrir qui s'ouvre. Si je demande de l'enregistrer, ça m'enregistre mon fichier php. Mais bon c'est un détail, je vais trouver la solution.
 
En tout cas, vraiment merci à toutes les personnes qui se sont penchés à mon problème. :hello:


 
 
Es-tu arrivé a tracer les bordures pour ton tableau avec cette classe ?
 
cordialement
 
JFG

Reply

Marsh Posté le 09-01-2010 à 13:52:37    

Bon, il y a une classe beaucoup plus exploitable et complète pour créer des RTF en PHP  
http://sourceforge.net/projects/phprtf/

Reply

Sujets relatifs:

Leave a Replay

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