PhpWord-TemplateProcessor 不替换值

PhpWord-TemplateProcessor does not replace values

提问人:Nirnae 提问时间:11/3/2023 更新时间:11/5/2023 访问量:20

问:

我正在尝试将某些内容替换为 docx 文件,但即使工作正常,我也没有在新文档中看到任何修改。 这是我的代码:saveAs

require 'vendor/autoload.php';

use PhpOffice\PhpWord\TemplateProcessor;
use Mpdf\Mpdf;

// Chemin du fichier Word d'origine
$inputDocx = 'Attestation_CLUE_modele V1 .docx';

// Chemin du fichier Word modifié
$outputDocx = 'Attestation_CLUE_modele V1MODA.docx';

// Instancier le TemplateProcessor
$templateProcessor = new TemplateProcessor($inputDocx);

// Remplacer le texte avec des guillemets français
$templateProcessor->setValues(['NOM', 'TEST DU NOM']);
var_dump($templateProcessor);
// Sauvegarder le document Word modifié
$templateProcessor->saveAs($outputDocx);

这是我试图替换的内容:enter image description here

然而没有任何改变,起初我正在尝试我想要更改的完整版本:

$templateProcessor->setValues(['«NOM»', 'TEST DU NOM']);

但是,如果没有成功,即使没有可能导致一些编码问题(也许),什么都没有改变«»

模板 PHPword PHPoffice

评论

0赞 TSCAmerica.com 11/5/2023
您使用的 setValues 方法不是官方 PHPWord 库的一部分。相反,应使用 setValue 方法替换模板中的占位符。Word 模板中的占位符应采用 ${placeholder} 格式。

答:

0赞 TSCAmerica.com 11/5/2023 #1

使用该方法单独替换每个占位符setValue

require 'vendor/autoload.php';

use PhpOffice\PhpWord\TemplateProcessor;

// Chemin du fichier Word d'origine
$inputDocx = 'Attestation_CLUE_modele V1 .docx';

// Chemin du fichier Word modifié
$outputDocx = 'Attestation_CLUE_modele V1MODA.docx';

// Instancier le TemplateProcessor
$templateProcessor = new TemplateProcessor($inputDocx);

// Remplacer le texte
$templateProcessor->setValue('NOM', 'TEST DU NOM');

// Sauvegarder le document Word modifié
$templateProcessor->saveAs($outputDocx);