如何动态插入图像到docx模板?

时间:2010-08-26 11:46:36

标签: php export save docx

在我的网络应用程序中,我使用phplivedocx进行文本更改。但我还需要动态更改docx模板中的图像。 你推荐什么工具?

提前致谢。

3 个答案:

答案 0 :(得分:5)

找到了解决方案。

引自phplivedocx论坛: “我发现了一种在将动态图像发送到LiveDocx之前在docx模板中插入动态图像的方法(因此它不适用于托管模板)。

这就是我的方式(在Php中): - 首先,我将默认图像放在我的本地单词模板中 - 在生成PDF之前,将docx视为zip存档(您可以手动提取以确认它),因此: - 在此存档中用动态图像替换文件/word/media/image1.png(格式化png格式化,不知道格式限制) - 关闭存档。

在此步骤中,如果您在word中打开docx模板,您将能够看到动态图像替换默认图像。

之后,您可以处理对liveDocx的请求。

这种方法存在一些局限性,我希望Boilerplate mecanism很快会以更好的方式实现,但在我的情况下,它只是像我想要的那样工作。 “

以下是如何在php中的docx模板中更改图像的代码:

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

答案 1 :(得分:0)

也可以有多个图像。 在document.xml中,您可以找到具有原始名称的图像。链接到图像是一个带有ambed代码。 您可以在_rels / document.xml.rels中的关系中找到相同的代码。此关系中的目标指向正确的图像编号

答案 2 :(得分:0)

如果您有兴趣,我已经创建了扩展程序,可以轻松完成这项工作 - https://github.com/igorrebega/docx-replacer

此代码会将文字 $ search 替换为 $ pathToDocx 文件中 $ path 中的图片

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

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