2010-08-26 5 views

Répondre

5

Trouvé la solution.

citation du forum phplivedocx: «J'ai trouvé un moyen d'insérer l'image dynamique dans le modèle docx avant de l'envoyer à LiveDocx (il ne fonctionne pas avec les modèles hébergés)

C'est la façon dont je le fais (. dans Php): - D'abord je mets une image par défaut dans mon modèle de mot local - Avant de générer le PDF, considérons le docx comme s'il s'agissait d'une archive zip (vous pouvez extraire manuellement pour le confirmer), donc: - Dans cette archive remplacer le fichier /word/media/image1.png par l'image dynamique (png plat formaté, ne pas connaître les limitations de format) - Fermer l'archive

À cette étape, si vous ouvrez le modèle docx dans Word, vous pourrez voir l'image dynamique remplaçant l'image par défaut. Ensuite, vous pouvez traiter la demande vers liveDocx.

Il y a certaines limites à cette méthode et je l'espère, viendra boilerplate mécanisme bientôt faire une meilleure façon, mais dans mon cas, il fonctionne comme je veux. "

Voici le code comment changer l'image dans le modèle docx en php:

$zip = new ZipArchive; 
$zip->open('documents/template_tm.docx'); 
$zip->addFile('new_image.png', 'word/media/image1.png'); 
$zip->close(); 
+0

oui si votre modèle n'a pas d'autres images ... –

0

Il est également possible pour plus d'une image Dans le document.xml vous pouvez trouver l'image avec le. Le nom de l'original est lié à l'image avec un code ambed Ce même code que vous pouvez retrouver dans une relation dans _rels/document.xml.rels La cible dans cette relation pointe vers le numéro d'image correct

0

Si vous êtes intéressé, j'ai créé l'extension, qui peut facilement faire ce travail - https://github.com/igorrebega/docx-replacer

Ce code remplacera le texte recherche $ à l'image qui se trouvent dans chemin $ dans $ pathToDocx fichier

$docx = new IRebega\DocxReplacer($pathToDocx); 

$docx->replaceTextToImage($search, $path); 
Questions connexes