有人要求我在php中创建一个应用程序,该应用程序将生成一个带有图像和几张表格的.doc文件。我的第一种方法是:如何使用php在word文件中包含图像?
<?php
function data_uri($file, $mime)
{
$contents = file_get_contents($file);
$base64 = base64_encode($contents);
return ('data:' . $mime . ';base64,' . $base64);
}
$file = 'new.doc';
$fh = fopen($file,'w');
$uri = data_uri('pic.png','image/png');
fwrite($fh,'<table border="1"><tr><td><b>something</b></td><td>something else</td></tr><tr><td></td><td></td></tr></table>
<br/><img src="'.$uri.'" alt="some text" />
<br/>
<table border="1"><tr><td><b>ceva</b></td><td>altceva</td></tr><tr><td></td><td></td></tr></table>');
fclose($fh);
?>
这使用嵌入图像的数据uri技术。
这将生成一个html文件,该文件在Web浏览器中将呈现良好状态,但至少在标准设置中,图像在Microsoft Office Word中缺失。然后,在用Word编辑文件时,我用文件中的图像替换了图像,Microsoft Word将该文件的内容更改为Open XML,并添加了一个文件夹new_files,他将导入的图像(这是一个.png ),图像的一个.gif版本和一个XML文件:
<xml xmlns:o="urn:schemas-microsoft-com:office:office">
<o:MainFile HRef="../new.doc" />
<o:File HRef="image001.jpg" />
<o:File HRef="filelist.xml" />
</xml>
现在,这是不够好,或者因为我想这是所有保存在一个单一的.doc文件。 有没有办法在OpenXML格式的.doc文件中嵌入图像?
我不知道其他唯一的方法,这是什么代码使用的docx和在哪里使用这个,在PHP或HTML?你可以再定义一下吗? – Bajrang 2012-04-23 07:39:05
如果我记得正确,你必须把它放在你生成的'doc'(xml)文件中。或者你可以将你的doc文件保存为xml,然后检查它的内部结构,似乎这是我用这种方式 – llamerr 2012-04-23 11:26:18