打开openoffice选好编码,能完成转换,没有乱码,但是用php就是乱码了,初步确定是没设置编码,请问在php中如何设置编码,php代码如下....
- PHP code
<?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){ $fdoc_url = "file:///" . $doc_url; $foutput_url = "file:///" . $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($fdoc_url,"_blank", 0, $args); $export_args = array(MakePropertyValue("FilterName","writer_pdf_Export",$osm)); $oWriterDoc->storeToURL($foutput_url,$export_args); $oWriterDoc->close(true); } $output_dir = "F:/ComsenzEXP/wwwroot/"; $doc_file = "F:/ComsenzEXP/wwwroot/11.csv"; $pdf_file = "513.pdf"; $output_file = $output_dir . $pdf_file; if(!file_exists($output_file)){ word2pdf($doc_file,$output_file); } ?>
------解决方案--------------------
你不是 COM 吗?那你看看 com.sun.star.ServiceManager 是否提供了设置编码的方法就是了