php 利用openoffice把word转成html和pdf的方法(导出html的图片也可导出来)
1。电脑上首先要安装openoffice
2。打开com组件的支持,方法为该篇日志类别下的《PHP 开启COM组件》
3。转为pdf的代码为:
<?php set_time_limit(0); function MakePropertyValue($name,$value,$osm){ $oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue"); $oStruct->Name = $name; $oStruct->Value = $value; return $oStruct; } function word2pdf($doc_url, $output_url){ $osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.n"); $args = array(MakePropertyValue("Hidden",true,$osm)); $oDesktop = $osm->createInstance("com.sun.star.frame.Desktop"); $oWriterDoc = $oDesktop->loadComponentFromURL($doc_url,"_blank", 0, $args); $export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm)); $oWriterDoc->storeToURL($output_url,$export_args); $oWriterDoc->close(true); } $output_dir = "文件导出的目录,如F:/";
$doc_file = "doc文件的位置,如F:/test.doc";
$pdf_file = "导出pdf文件的名字,如test.pdf"; $output_file = $output_dir . $pdf_file; $doc_file = "file:///" . $doc_file; $output_file = "file:///" . $output_file; word2pdf($doc_file,$output_file); ?>
4.转为html的代码为:
<?php
function OpenOfficeMakePropertyValue( $name, $value, $osm)
{
$oStruct = $osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}
function OpenOfficeWordToHtml( $doc_url, $output_url )
{
//调用OpenOffice.org服务器
$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");
//设置应用程序继续隐藏,避免闪烁的屏幕上的文档
$args = array(OpenOfficeMakePropertyValue("Hidden",true,$osm));
//启动桌面
$oDesktop = $osm->createInstance("com.sun.star.frame.Desktop");
//加载。doc文件,从上面传递“隐藏”属性
$oWriterDoc = $oDesktop->loadComponentFromURL($doc_url,"_blank", 0, $args);
//设置参数为PDF输出
$export_args = array(
OpenOfficeMakePropertyValue("FilterName","HTML (StarWriter)",$osm) ,
OpenOfficeMakePropertyValue("Overwrite","true",$osm)
);
//写出的HTML
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
}
$output_dir = "
文件导出的目录,如F:/";
$doc_file = "doc文件的位置,如F:/test.doc";
$pdf_file = "导出html文件的名字,如test.html";
$output_file = $output_dir . $pdf_file;
$doc_file = "file:///" . $doc_file;
$output_file = "file:///" . $output_file;
OpenOfficeWordToHtml($doc_file,$output_file);
?>