我有一些图像与一个类型字段一起存储在数据库中,让我们说它的A或B.我试图将它们添加到一个单词模板,进入我命名为imgPlaceholder1和imgPlaceholder2的字段,具体取决于类型图片。继承了我目前的代码:
$wordTable = new COM("Word.Application") or die("Unable to instanciate Word");
$wordTable->visible = 1;
$wordTable->Documents->Open("c:\template\file.doc");
try {
$query = "select id,path,type from uploads Where id = '$Id'";
$action = mysql_query($query) or die(mysql_error());
while($result = mysql_fetch_array($action)){
$type=$result['type'];
$path=$result['path'];
if($type=='A'){
$wordTable->Selection->Find->ClearFormatting();
$wordTable->Selection->Find->Text = 'imgPlaceholder1';
$wordTable->Selection->Find->Execute();
$wordTable->Selection->InlineShapes->AddPicture($path,False,True);
}
if($type=='B'){
$wordTable->Selection->Find->ClearFormatting();
$wordTable->Selection->Find->Text = 'imgPlaceholder2';
$wordTable->Selection->Find->Execute();
$wordTable->Selection->InlineShapes->AddPicture($path,False,True);
}
}
}
catch (Exception $e)
{
echo $e->getMessage();
}
现在,代码可以工作,但它做了一些奇怪的事情。它会忽略类型并将所有内容拉入第一个占位符。我相信它是因为Selection-> Find-> Text,但我不知道如何清除选择或强制它搜索新的东西。 我也尝试保存和关闭文档,然后插入第二种类型的图像,但结果是相同的。所有图像都以第一个占位符结束。
答案 0 :(得分:0)
由我自己解决。 这3行不能相距很远,或者他们感到悲伤并停止工作:
$wordTable->Selection->Find->ClearFormatting();
$wordTable->Selection->Find->Text = '_fl_ImgTest_1');
$wordTable->Selection->Find->Execute();
然后你可以获得一些编码自由,最后添加:
$wordTable->Selection->InlineShapes->AddPicture($path,False,True);
使用第二个字符串重复该过程以查找,它将起作用