首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境。由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apache和PHP,下面,小编为大家搜索整理了PHP生成Word文档的方法,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!

PHP生成word原理

利用windows下面的 com组件

利用PHP将内容写入doc文件之中

具体实现:

利用windows下面的 com组件

原理:com作为PHP的一个扩展类,安装过office的服务器会自动调用word.application的com,可以自动生成文档,PHP官方文档手册:http://www.php.net/manual/en/class.com.php

使用官方实例:

// starting word

$word = new COM("word.application") or die("Unable to instantiate Word");

echo "Loaded Word, version {$word->Version}\n";

//bring it to front

$word->Visible = 1;

//open an empty document

$word->Documents->Add();

//do some weird stuff

$word->Selection->TypeText("This is a test...");

$word->Documents[1]->SaveAs("Useless test.doc");

//closing word

$word->Quit();

//free the object

$word = null;

?>

个人建议:com实例后的方法都需要查找官方文档才知道什么意思,编辑器没有代码提示,非常不方便,另外这个效率也不是很高,不推荐使用

利用PHP将内容写入doc文件之中

这个方法又可以分为两种方法

生成mht格式(和HTML很相似)写入word

纯HTML格式写入word

生成mht格式(和HTML很相似)写入word

/**

* 根据HTML代码获取word文档内容

* 创建一个本质为mht的文档,该函数会分析文件内容并从远程下载页面中的图片资源

* 该函数依赖于类MhtFileMaker

* 该函数会分析img标签,提取src的属性值。但是,src的属性值必须被引号包围,否则不能提取

*

* @param string $content HTML内容

* @param string $absolutePath 网页的绝对路径。如果HTML内容里的图片路径为相对路径,那么就需要填写这个参数,来让该函数自动填补成绝对路径。这个参数最后需要以/结束

* @param bool $isEraseLink 是否去掉HTML内容中的链接

*/

function getWordDocument( $content , $absolutePath = "" , $isEraseLink = true )

{

$mht = new MhtFileMaker();

if ($isEraseLink)

$content = preg_replace('/

$images = array();

$files = array();

$matches = array();

//这个算法要求src后的属性值必须使用引号括起来

if ( preg_match_all('/

{

$arrPath = $matches[1];

for ( $i=0;$i

{

$path = $arrPath[$i];

$imgPath = trim( $path );

if ( $imgPath != "" )

{

$files[] = $imgPath;

if( substr($imgPath,0,7) == 'http://')

{

//绝对链接,不加前缀

}

else

{

$imgPath = $absolutePath.$imgPath;

}

$images[] = $imgPath;

}

}

}

$mht->AddContents("tmp.html",$mht->GetMimeType("tmp.html"),$content);

for ( $i=0;$i

{

$image = $images[$i];

if ( @fopen($image , 'r') )

{

$imgcontent = @file_get_contents( $image );

if ( $content )

$mht->AddContents($files[$i],$mht->GetMimeType($image),$imgcontent);

}

else

{

echo "file:".$image." not exist!

";

}

}

return $mht->GetFile();

}

这个函数的主要功能其实就是分析HTML代码中的所有图片地址,并且依次下载下来。获取到了图片的内容以后,调用MhtFileMaker类,将图片添加到mht文件中。具体的添加细节,封装在MhtFileMaker类中了。

使用方法:远程调用

url= http://www.***.com;

$content = file_get_contents($url);

$fileContent = getWordDocument($content,"http://www.jb51.net/Music/etc/");

$fp = fopen("test.doc", 'w');

fwrite($fp, $fileContent);

fclose($fp);

其中,$content变量应该是HTML源代码,后面的链接应该是能填补HTML代码中图片相对路径的URL地址

本地生成调用:

header("Cache-Control: no-cache, must-revalidate");

header("Pragma: no-cache");

$wordStr = 'http://www.jb51.net/';

$fileContent = getWordDocument($wordStr);

$fileName = iconv("utf-8", "GBK", ‘jb51' . '_'. $intro . '_' . rand(100, 999));

更多PHP相关文章推荐:

php生成word设置纸张,PHP生成Word文档的方法相关推荐

  1. Chrome浏览器设置允许网站如金山文档剪贴方法测试ok

    Chrome设置→网站设置→权限→剪贴板.

  2. php 2003生成word,使用PHPWord生成word文档的方法详解

    使用PHPWord生成word文档的方法详解 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  使用PHPWord生成word文档的方法详解.txt ] (友情提示 ...

  3. php生成 word,使用PHPWord生成word文档的方法详解

    本文实例讲述了使用PHPWord生成word文档的方法.分享给大家供大家参考,具体如下: 有时我们需要把网页内容保存为Word文档格式,以供其他人员查看和编辑.PHPWord是一个用纯PHP编写的库, ...

  4. php导出doc文件_PHP生成Word文档的方法

    PHP生成Word文档的方法 首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境.由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apac ...

  5. python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)

    程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用free ...

  6. java word设置纸张a3,Word中进行设置A3文档纸张大小的操作技巧

    在工作中最常用的纸质文档是A4的,但是我们有时候也需要用一些A3甚至其他纸张的文档,那么,在做文档的时候该如何设置呢?今天,学习啦小编就教大家在Word中进行设置A3文档纸张大小的操作技巧. Word ...

  7. python生成word 带目录_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  8. c语言如何自动生成word,C语言读取word文档的方法

    C语言读取word文档的方法 第一种方法: 复制代码 代码如下: Response.ClearContent(); Response.ClearHeaders(); Response.ContentT ...

  9. 一种辅助整理知网论文题录文档的方法(Excel、Word)

    知网导出的题录文件通常用于NoteExpress.EndNote等文献管理软件,想要做成表格一览无余或是Word文档怎么操作呢? 继之前写过的一篇WoS英文题录翻译整理之后,本次尝试将知网导出的题录文 ...

最新文章

  1. php中类的构造函数是,php类与构造函数解析
  2. boost::hana::is_convertible用法的测试程序
  3. 我的世界服务器破坏方块有延迟,问一下我的世界游戏方块不会被破坏的指令以及指令适用于游戏的版本 我记得在服务器上和单机上好像有不同的指令...
  4. php伪静态限制网页播放视频,学习猿地-php伪静态后html不能访问怎么办
  5. 数据结构之外部排序:置换-选择排序
  6. 持续集成部署Jenkins工作笔记0007---配置JDK和Maven并安装Deploy插件
  7. firebug console说明
  8. 程序员提升工作效率和质量工具
  9. 初识Spring Boot
  10. python在线学习直播-一对多直播系统开发,百万用户在线,直播弹幕系统是如何实现的?...
  11. Json文件转Map(二)之解析节点
  12. 词法分析器代码分析报告
  13. 中国电信中国电信物联网开放平台-连接管理子系统 http返回为空
  14. [零刻]EQ12安装PVE虚拟机教程
  15. DWORD与ULONG的区别
  16. Arp病毒(motou.exe,smss.com,smss.exe)解决方案
  17. 交通模拟仿真平台指南(含数据说明)
  18. Qt使用QAudioInput、QAudioOutput实现局域网的音频通话
  19. 驻场开发跟人力外包有什么区别?
  20. 北大英语考研分数计算机,08年计算机系录取分数线及名单

热门文章

  1. 互联网创业|你把网校平台研发好了,运营打算扔给谁?
  2. 第五人格服务器维护中8月6日,第五人格5月8日更新维护 最新关键改动一文解析...
  3. 编写程序实现比萨制作
  4. php培训多久能学会,PHP好学吗?多久能学会?
  5. 夯实Java基础系列28:java里的浅拷贝、深拷贝
  6. 苹果发布iOS 14.2正式版
  7. 请使用线程池创建线程,而勿手动创建线程
  8. Java项目二:客户信息管理系统(eclipse)
  9. python 条形图 动画_带Python的动画三维条形图
  10. 2021年A证(安全员)考试报名及A证(安全员)操作证考试