2010-08-26 64 views
1

在我的web应用程序中,我使用phplivedocx进行文本更改。但我也需要动态更改我的docx模板中的图像。 你推荐什么工具?如何动态插入图像到docx模板?

在此先感谢。

+0

您是否使用PhpLiveDocx寻找一个解决方案,也可以使用其他工具在做Docx合并? – Skrol29 2011-04-02 23:09:08

回答

5

找到解决方案。从phplivedocx论坛

报价: “我找到了一种方法将它发送到LiveDocx(所以它不与托管模板工作)之前插入DOCX模板动态图像

这是我做的方式(。在我的本地单词模板中输入默认图像 - 在生成PDF之前,将docx视为它是一个zip存档(可以手动提取以确认它),因此: - 在此处档案替换文件/word/media/image1.png的动态图像(平PNG格式,不知道格式的限制) - 关闭档案

在这一步,如果你用word打开docx模板,你将能够看到替代默认图像的动态图像。

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

这种方法存在一些局限性,我希望Boilerplate机械加工很快能够实现,但在我的情况下,它只是像我想要的那样工作。 “

下面是代码如何在PHP改变的docx模板图像:

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

是的,如果你的模板没有其他图像... – 2012-07-18 07:54:43

0

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

0

如果你有兴趣我已经创建了扩展,可以很容易地使这项工作 - https://github.com/igorrebega/docx-replacer

此代码将替换文本$搜索到位于$路径$ pathToDocx文件图像

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

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