有人请我做在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技术。

这将产生将在Web浏览器中呈现好的html文件,但图像丢失在Microsoft Office Word,至少在标准设置。然后,在编辑的Word文件,我已经从文件和Microsoft Word的图像替换图像改变文件的内容转换成开放的XML和添加的文件夹,new_files他把导入的图像(这是一个巴纽),图像的一个.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文件?

有帮助吗?

解决方案

这里看看 http://www.tkachenko.com/blog/archives/000106 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>

其他提示

有是 PHPWord 项目从内部PHP操纵MS Word中。

  

PHPWord是PHP编写的库   创造word文档。没有Windows   需要操作系统的使用   因为结果是docx文件   (的Office Open XML),可以打开   所有主要的办公软件。

PHPWord可以编写他们 http://phpword.codeplex.com/ (注:其依然在Beta版。我用PHpExcel由同一人很多了,从来没有尝试过的Word版)。

有一个看看phpdocx库产生扩展名为.doc真正的.docx文件而不是HTML文件

PS扩展应严格做到.DOCX而非.DOC开放XML的Word 2007文件

OpenTBS 可利用的技术在PHP创建DOCX(以及其它处理OpenXML文件)动态文档模板。

需要

没有临时文件,没有命令行,所有在PHP。

它可以添加或删除照片。所创建的文档可以作为一个HTML下载,保存在服务器上的文件,或者作为在PHP二进制内容。

它也可以合并开放文档文件(ODT,ODS,ODF,...)

http://www.tinybutstrong.com/opentbs.php

如果富文本正常尝试 PhpRtf

我会使用PHPExcel。它可以与OpenXML的工作了。

下面的链接: http://phpexcel.codeplex.com/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top