2010-08-26 61 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);