作者:乔山办公网日期:
返回目录:word文档
<?php
/*
* 必须将 php.ini 中的 com.allow_dcom 设为 TRUE
*/
function php_Word($wordname,$htmlname,$content)
{
//获取链接地址
$url = $_SERVER['HTTP_HOST'];
$url = ";
$url = $url.$_SERVER['PHP_SELF'];
$url = dirname($url)."/";
//建立一个指向新COM组件的索引
$word = new COM("word.application") or die("Unable to instanciate Word");
//显示目前正在使用的Word的版本号
echo "Loading Word, v. {$word->Version}";
//把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)
$word->Visible = 1;
//---------------------------------读取Word内容操作 START-----------------------------------------
//打开一个word文档e69da5e6ba90e799bee5baa6337
$word->Documents->Open($url.$wordname);
//将filename.doc转换为html格式,并保存为html文件
$word->Documents[1]->SaveAs(dirname(__FILE__)."/".$htmlname,8);
//获取htm文件内容并输出到页面 (文本的样式不会丢失)
$content = file_get_contents($url.$htmlname);
echo $content;
//获取word文档内容并输出到页面(文本的原样式已丢失)
$content= $word->ActiveDocument->content->Text;
echo $content;
//关闭与COM组件之间的连接
$word->Documents->close(true);
$word->Quit();
$word = null;
unset($word);
//---------------------------------新建立Word文档操作 START--------------------------------------
//建立一个空的word文档
$word->Documents->Add();
//写入内容到新建word
$word->Selection->TypeText("$content");
//保存新建的word文档
$word->Documents[1]->SaveAs(dirname(__FILE__)."/".$wordname);
//关闭与COM组件之间的连接
$word->Quit();
}
php_Word("tesw.doc","filename.html","写入word的内容");
?>
jeyyu的代码中浏览器中执行zd时需要降低浏览器的安全设置,不方便,而且取得的内容只是到剪贴板
你可以试试SOAOffice中间件,这个是专门读写word的类,联系科翰索要php代码示例内
你说的是端口问题吧,最近SOAOffice中间件推出了免端口版本。个人体会,SOAOffice编程调用上,要比金格的全文批注简容单得多
没什么特别方法,因为早期word格式并不公开,所以除了调用office组件否则zhidao无法正确读取数据。可行的方式是将word文档后台转换为pdf或者其他专格式,我印象中网上有php调用后台程序将doc转换为pdf,前台用flash显示的参考代码,可以搜搜看,其实就是类似百度属文库的那种显示方式。
这个是通过调用com组件的方式操作e79fa5e98193e58685e5aeb9362word的
<?
// 建立一个指向新COM组件的索引
$word = new COM("word.application") or die("Can't start Word!");
// 显示目前正在使用的Word的版本号
//echo “Loading Word, v. {$word->Version}”;
// 把它的可见性设置为0(假),如果要使它在最前端打开,使用1(真)
// to open the application in the forefront, use 1 (true)
//$word->Visible = 0;
//打?一个文档
$word->Documents->OPen("d:\myweb\muban.doc");
//读取文档内容
$test= $word->ActiveDocument->content->Text;
echo $test;
echo "";
//将文档中需要换的变量更换一下
$test=str_replace("<{变量}>","这是变量",$test);
echo $test;
$word->Documents->Add();
// 在新文档中添加文字
$word->Selection->TypeText("$test");
//把文档保存在目录中
$word->Documents[1]->SaveAs("d:/myweb/comtest.doc");
// 关闭与COM组件之间的连接
$word->Quit();
?>