PHPWord:是否可以用图像替换文档中的占位符文本(在文本所在的相同位置)?
PHPWord : Is it possible to replace placeholder text in a document with an image (at the same position where the text was)?
作为电子签名功能实现的一部分。我需要在Word文档的特定位置添加签名。然而,该立场可能因一份文件而异。唯一可能的解决方案似乎是有一个签名占位符,一旦文档被签名,它就会被 signature.png 替换。
使用 PHPWord 包可以做到这一点吗?如果没有,是否有任何软件包可以做到这一点?
根据他们的 documentation :
,这是使用 phpword 的方法
首先,word文件需要有一个占位符:
${CompanyLogo}
${UserLogo:50:50} ${Name} - ${City} - ${Street}
${Signature:50:50}
然后用php,我们可以像这样替换占位符:
$templateProcessor = new TemplateProcessor('Template.docx');
$templateProcessor->setValue('Name', 'John Doe');
$templateProcessor->setValue(array('City', 'Street'), array('Detroit', '12th Street'));
$templateProcessor->setImageValue('CompanyLogo', 'path/to/company/logo.png');
$templateProcessor->setImageValue('UserLogo', array('path' => 'path/to/logo.png', 'width' => 100, 'height' => 100, 'ratio' => false));
$templateProcessor->setImageValue('Signature', function () {
// Closure will only be executed if the replacement tag is found in the template
return array('path' => 'path/to/signature.png', 'width' => 100, 'height' => 100, 'ratio' => false);
});
作为电子签名功能实现的一部分。我需要在Word文档的特定位置添加签名。然而,该立场可能因一份文件而异。唯一可能的解决方案似乎是有一个签名占位符,一旦文档被签名,它就会被 signature.png 替换。
使用 PHPWord 包可以做到这一点吗?如果没有,是否有任何软件包可以做到这一点?
根据他们的 documentation :
,这是使用 phpword 的方法首先,word文件需要有一个占位符:
${CompanyLogo}
${UserLogo:50:50} ${Name} - ${City} - ${Street}
${Signature:50:50}
然后用php,我们可以像这样替换占位符:
$templateProcessor = new TemplateProcessor('Template.docx');
$templateProcessor->setValue('Name', 'John Doe');
$templateProcessor->setValue(array('City', 'Street'), array('Detroit', '12th Street'));
$templateProcessor->setImageValue('CompanyLogo', 'path/to/company/logo.png');
$templateProcessor->setImageValue('UserLogo', array('path' => 'path/to/logo.png', 'width' => 100, 'height' => 100, 'ratio' => false));
$templateProcessor->setImageValue('Signature', function () {
// Closure will only be executed if the replacement tag is found in the template
return array('path' => 'path/to/signature.png', 'width' => 100, 'height' => 100, 'ratio' => false);
});