在我的网络应用程序中,我使用phplivedocx进行文本更改。但我还需要动态更改docx模板中的图像。 你推荐什么工具?
提前致谢。
答案 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);