有人要我在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>
看这里
http://www.tkachenko.com/blog/archives/000106.html
原文链接:https://www.f2er.com/php/134567.html<w:pict> <v:shapetype id="_x0000_t75" ...> ... VML shape template definition ... </v:shapetype> <w:binData w:name="wordml://02000001.jpg"> ... Base64 encoded image goes here ... </w:binData> <v:shape id="_x0000_i1025" type="#_x0000_t75" style="width:212.4pt;height:159pt"> <v:imagedata src="wordml://02000001.jpg" o:title="Image title"/> </v:shape> </w:pict>