PhpWord ne pas remplacer du texte
J'ai un fichier docx et j'ai besoin de remplacer du texte. Ceci est fait à l'intérieur de codeigniter framework; voici le code:
$this->load->library('word');
$template = $this->word->loadTemplate($_SERVER['DOCUMENT_ROOT'].'/doc/assets/doc3.docx');
$template->setValue('replacename', 'new');
$template->save($_SERVER['DOCUMENT_ROOT'].'/doc/assets/helloWorld.docx');
Quand j'ouvre le nouveau fichier, je reçois toujours "replacename" au lieu de "nouveau". "replacename" est mis en forme avec la police Verdana, 9pt taille de la police (non souligné ou en gras). Pourquoi ça ne marche pas?
Retrait de ${ } de la fonction setValue (fichier doc), il fonctionne
partagez ce que vous obtenez lorsque vous effectuez
J'obtiens la valeur NULL.Merci
Cela signifie que votre
publique fonction setValue($recherche, $replace) { if(substr($recherche, 0, 2) !== '${' && substr($recherche, -1) !== '}') { $recherche = '${'.$de recherche.'}'; } if(!is_array($remplacer)) { $replace = utf8_encode($remplacer); } $this->_documentXML = str_replace($recherche, $replace, $this->_documentXML); }
préférable de modifier ce dans vous la question
var_dump(setValue('replacename','new'));
J'obtiens la valeur NULL.Merci
Cela signifie que votre
setValue()
ne fonctionne pas. Pouvez-vous partager cette fonctionpublique fonction setValue($recherche, $replace) { if(substr($recherche, 0, 2) !== '${' && substr($recherche, -1) !== '}') { $recherche = '${'.$de recherche.'}'; } if(!is_array($remplacer)) { $replace = utf8_encode($remplacer); } $this->_documentXML = str_replace($recherche, $replace, $this->_documentXML); }
préférable de modifier ce dans vous la question
OriginalL'auteur pindol | 2013-05-28
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la solution dans http://phpword.codeplex.com/workitem/57... le problème semble être lorsque word génère son propre code.
pour la solution, il suffit de renommer l'extension de votre modèle de zip, vérifier dans un fichier nommé "document.xml" en "word" dossier, et de votre recherche de code de la valeur... il devrait ressembler à ceci:
OriginalL'auteur alec
Il s'avère que lorsque vous ajoutez du texte vers un fichier word, il crée parfois des balises supplémentaires dans le fichier xml. (Pseudo-code)
${NAME}
peut devenir<tag1>${</tag1><tag2>NAME</tag2><tag3>}</tag3>
De ce fait, phpword ne trouvez pas votre aiguille.
Je suis sur un mac avec microsoft word et je peux juste couper tout le contenu du fichier word et collez-les à nouveau.
Mot de recréer le fichier xml sous-jacent dans lequel ${NOM} est 1 tag au lieu de 3.
OriginalL'auteur Marc
Juste ajouter 2 fonction dans le fichier "TemplateProcessor.php"
Comment l'utiliser:
Utiliser un tableau comme le seul paramètre de la fonction "setValueAdvanced", où "la touche" - un mot, que nous voulons le remplacer, et la "valeur" - expression que nous avons envie de coller à la place.
Important:
À l'intérieur d'un fichier MS Word utiliser "${word_to_replace}" à "marque", un mot que nous voulons le remplacer, mais la clé d'un tableau doit être "word_to_replace", sans "${}"
Exemple de code:
OriginalL'auteur andrew_jackson
Vous pouvez utiliser la nouvelle classe de Modèle avec la nouvelle méthode setValue()
Nouvelle méthode peut remplacer setValue ("test5', 'Mavaleur');
Télécharger la nouvelle classe: https://github.com/Arisse/PHPWord_CloneRow
OriginalL'auteur Korimizu
ici, j'ai essayer et fonctionne bien,
de la fonction setValue ne fonctionne pas car il comprennent le format de word après avoir générer pour le web. si le texte vous pouvez remplacer n'a pas trouvé.
la solution est
il suffit de saisir votre ${replaceKey} pour le bloc-notes et copiez-le your_template.docx
il travaille pour moi.
le bloc-notes font tous format word non inclus pour le modèle de sorte que la fonction setValue peut trouvé comme prévu.
Espère qu'il vous Aider les gars.
OriginalL'auteur wiqi
J'ai créé un modèle circulaire à partir du modèle où j'ai rempli les champs requis $ {Valeur} valeurs. J'ai fusionné et sauvegardé le résultat comme un nouveau modèle. Donc, il a accepté les objets de valeur
OriginalL'auteur Imi
Ma solution
}
OriginalL'auteur Orazbaev Ayan