Accueil > > > ODTPHP - UPDATE POUR PHP 5.2.7 ET +
ODTPHP - UPDATE POUR PHP 5.2.7 ET +
Information sur la source
Description
La source odtPHP développée par Julien PAULI et Cyril PIERRE de GEYER est très intéressante. Elle permet d'utiliser un document .odt comme "modèle" et de nourrir des variables à l'intérieur comme le ferait un moteur de templates. Le problème est qu'à partir de PHP5.2.7 et supérieur la méthode de Zip a changé et ne fonctionne plus. Les auteurs n'ayant pas proposé de solution dans leur source pour le moment, je propose donc cette modification de leur code afin de ne plus avoir de souci. J'avais également eu des problèmes pour afficher des images, mais la aussi c'est résolu.
Source
- <?php
- require_once 'lib/Odf.php';
- require_once 'lib/Segment.php';
- require_once 'lib/SegmentIterator.php';
- require_once 'lib/Createzip.php';
-
- $odf = new Odf('./tutoriel1.odt');
-
- $odf->setVars('titre', 'Bonjour tout le monde');
- $odf->setVars('message', 'Soyez les bienvenus');
-
- $j=1;
- $module = $odf->setSegment('modules');
- while ($j < 15) {
- $i = 1;
-
- if ($j == 1)
- $module->setImage('TitreModule','./mysql.jpg');
- else
- $module->setVar('TitreModule', 'Titre de module' . $j);
-
- while ($i < 20) {
-
- $module->details->detail('Anaska is the best Open Source training center. It rocks ! ' . $i);
-
- $dates = $module->details->dates;
- $dates->setVar('infodate', date('d/m/Y h:i:s').' bcl:'.$i);
- $dates->setImage('date', './contacts.png');
-
- $i ++;
- $module->details->merge();
- }
- $j ++;
- $module->merge();
- }
- $odf->mergeSegment($module);
-
- $odf->setImage('image','./mysql.jpg');
-
- $odf->setImage('image2','./Excel20073D.png');
-
- $odf->saveToDisk('generate.odt');
-
- $odf->getZip()->forceDownload('generate.odt');
- ?>
<?php
require_once 'lib/Odf.php';
require_once 'lib/Segment.php';
require_once 'lib/SegmentIterator.php';
require_once 'lib/Createzip.php';
$odf = new Odf('./tutoriel1.odt');
$odf->setVars('titre', 'Bonjour tout le monde');
$odf->setVars('message', 'Soyez les bienvenus');
$j=1;
$module = $odf->setSegment('modules');
while ($j < 15) {
$i = 1;
if ($j == 1)
$module->setImage('TitreModule','./mysql.jpg');
else
$module->setVar('TitreModule', 'Titre de module' . $j);
while ($i < 20) {
$module->details->detail('Anaska is the best Open Source training center. It rocks ! ' . $i);
$dates = $module->details->dates;
$dates->setVar('infodate', date('d/m/Y h:i:s').' bcl:'.$i);
$dates->setImage('date', './contacts.png');
$i ++;
$module->details->merge();
}
$j ++;
$module->merge();
}
$odf->mergeSegment($module);
$odf->setImage('image','./mysql.jpg');
$odf->setImage('image2','./Excel20073D.png');
$odf->saveToDisk('generate.odt');
$odf->getZip()->forceDownload('generate.odt');
?>
Conclusion
Requis : - PHP 5.2.X - L'extension php_zip (installée dans Wamp par exemple, mais pas activée par défaut) - OpenOffice 3.X
Historique
- 30 mars 2009 13:56:49 :
- L'utilisation de cette source que je viens de mettre sur un projet en production a posé souci sur la localisation du répertoire issu du .odt.
C'est maintenant corrigé.
Pour ceux que ça intéresse vous pouvez me laisser un message privé pour avoir cette source compatible avec le Zend Framework (j'ai en fait transformé les noms des classes et tout clarifié au format CamelCase).
- 30 mars 2009 18:09:32 :
- Il est possible de créer des boucles dynamiques avec odtPHP mais apparemment on ne peut insérer que du texte grâce à "setVar" présent sur la classe Segment.
J'ai donc modifié la classe Segment pour rajouter des images dynamiquement à chaque tour de boucle.
J'ai modifié l'exemple en conséquence.
- 30 mars 2009 18:11:09 :
- Vous pouvez maintenant insérer des images de façon dynamique sur les boucles crées dans vos modèles. Auparavant on ne pouvait ajouter que du texte.
- 30 mars 2009 19:57:50 :
- Corrections de bug sur l'ajout d'images dynamiques dans des sous-boucles.
Modification de l'exemple en conséquence.
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Template :: Comment ça marche??? [ par Adagyo ]
Salut @ tous,Je souhaiterais proposer au utilisateur plusieurs theme d'affichage de mes page web... Pour cela, j'ai essayé de décortiquer un peux vBul
template.inc [ par joedalton ]
bonjourVoila, je possede un fichier template.inc qui me permet de définir ma classe template, mais le probleme c'est que ce fichier est valable pour l
template aide [ par thedentiste ]
Voila est ce que quelqu'un pourrais m'aider pour utlisation de template j'ai chope plein de tuto mais je trouve pas ce qu'il le faut je cherche a fair
Template phplib [ par TuXAveRy ]
Bonjour,Voila j'ai un problème de logique assez basic :/J'utilise smarty depuis quelque temps déjà et pour des raisons technique je souhaiterais passe
php dans template [ par BirD ]
hello, une tite question par rapport aux templates : peut -on insérer du code php dans le fichier de template et faire que ca fonctionne ?
fusion php mysql openoffice [ par titoye ]
Bonjour à tous, j'aimerai depuis un page php fusionner un document texte openoffice.Le top serai de pouvoir lancer directement la fusion mais pou
template [ par Urukai1 ]
bonjour a tous g une question sur les termplates j'utilise celle de PHPLib en gros j'ai fait un modele de page web a laquelle j'applique des valeurs
Comment gérer les boutons submits [ par alaise ]
Bonjour,Je cherche à savoir comment je peux faire pour gérer les boutons submits lorsque j'ai plusieurs formulaires dans une page (template)
Prob avec preg_replace() [ par Kevergeek ]
Voici mon code : <?php $file = "templates/default/test.tpl"; $template['TITLE'] = "titre"; $template['TEXT'] = "blabla"; $file = file_get_content
Generation documents OpenOffice 2.0 [ par darunia ]
Bonjour,Je souhaiterais savoir si il existe une librairie permettant de generer des documents sxw pour OpenOffice Writer 2.0.Si oui, merci de m'indiqu
|
Derniers Blogs
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur le i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un méchant coup dur. Pour résumer la situation : à la...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|