je colle ce sujet dans la rubrique XML car OpenDocument me paraît le sujet central. Si ce n'est pas bon, un modérateur pourra le déplacer
PHP : 5.2.5
Symfony : 1.1
odtPHP : 0.3
dans mon outil de gestion de cours, je veux proposer la création automatique d'attestation de suivi des cours. J'ai donc un modèle d'attestation, avec des variables (pas beaucoup, genre nom/prénom etc) et je génère mon document grâce à la librairire des camarades Cyruss et Julien Pauli : http://www.phpteam.net/index.php/articl ... t-avec-php
Si je prends mon modèle, mon petit bout de code ci-dessous, cela marche très bien : document généré et ouvert sans problème par OO Writer.
// $attestation est un bête objet avec des attributs, des getters et des setters
public function genererOpenDocument($attestation) {
require_once('odf/odf.php');
// pour tester en dehors de symfony je remplace par un chemin statique
$templatesPath = sfConfig::get('sf_app_template_dir').'/docs/';
$templateODF = $templatesPath.'modele_attestation.odt';
$odf = new odf($templateODF);
$odf->setVars('NOM_PRESIDENT',$attestation->nomPresidentDelegation);
$odf->setVars('TITRE_APPRENANT',$attestation->titre);
$odf->setVars('NOM_APPRENANT',$attestation->nomApprenant);
$odf->setVars('PRENOM_APPRENANT',$attestation->prenomApprenant);
$odf->setVars('DATE_ATTESTATION',$attestation->dateCreationAttestation);
$odf->setVars('DATE_DEBUT_SESSION',$attestation->dateDebutSession);
$nomFichier = 'attestation-'.strtoupper($attestation->nomApprenant).'.odt';
// On exporte le fichier
$odf->exportAsAttachedFile($nomFichier);
}
Mais si j'intègre ça dans mon projet symfony (le même modèle, le même code !), en ouvrant le document OO me dit "document corrompu" et me propose de le réparer. Une fois réparé, c'est ok, il y a tout ce que je voulais dedans.J'ai tenté un diff sur quelques fichiers xml contenu dans l'archive OK et celle KO, je ne vois rien de spécial. J'ai aussi cherché sur internet tout comme il faut.
Quelqu'un a-t-il une idée ? Y'a-t-il un log, un rapport d'erreur OpenOffice permettant de savoir ce qui ne va pas dans le fichier ?
Je sais il n'y a pas beaucoup de code mais franchement quoi mettre ? J'ai fait le test avec un des tutoriaux livrés avec la lib (un document ODF qui contient une seule variable, et le petit bout de code pour la valoriser) et c'est la même chose... enfin si vous en voulez plus, je fournis.
Merci de votre aide