有人让我用php制作一个应用程序,可以生成一个包含图片和几个表格的.doc文件。我的第一次尝试是:
<?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 文件中嵌入图像?
doc
(xml)文件内。或者你可以将你的doc文件保存为xml,然后检查它的内部结构,这似乎是我使用过的方法。 - llamerr