Home >Backend Development >PHP Tutorial > php 利用openoffice把office转成pdf格式,该如何处理

php 利用openoffice把office转成pdf格式,该如何处理

WBOY
WBOYOriginal
2016-06-13 12:59:50893browse

php 利用openoffice把office转成pdf格式
如题  从网上找到代码

	function word2pdf($doc_url, $output_url)<br />
	{<br />
		//Invoke the OpenOffice.org service manager<br />
		$osm = new COM("com.sun.star.ServiceManager") or die ("Please be sure that OpenOffice.org is installed.\n");<br />
		//Set the application to remain hidden to avoid flashing the document onscreen<br />
		$args = array($this->MakePropertyValue("Hidden",true,$osm));<br />
		//Launch the desktop<br />
		$top = $osm->createInstance("com.sun.star.frame.Desktop");<br />
		//Load the .doc file, and pass in the "Hidden" property from above<br />
		$oWriterDoc = $top->loadComponentFromURL($doc_url,"_blank", 0, $args);<br />
		//Set up the arguments for the PDF output<br />
		$export_args = array($this->MakePropertyValue("FilterName","writer_pdf_Export",$osm));<br />
		//Write out the PDF<br />
		$oWriterDoc->storeToURL($output_url,$export_args);<br />
		$oWriterDoc->close(true);<br />
	}<br />
<br />
	<br />
	<br />
	public function test1()<br />
	{<br />
		$output_dir = SERVERBASE . 'client/files/proj_workaholic/office/pdf/';<br />
		$doc_file = SERVERBASE . 'client/files/proj_workaholic/office/office/helloWorld.doc';<br />
		$pdf_file = "hellowWorld.pdf";<br />
		$output_file = $output_dir . $pdf_file;<br />
//		$doc_file = "file:///" . $doc_file;<br />
//		$output_file = "file:///" . $output_file;<br />
		$this->word2pdf($doc_file,$output_file);<br />
	<br />
	}<br />
test();<br />

系统:window xp
软件:openoffice3.3
服务器:xampp
php.ini - com.allow_dcom = true

错误:Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `com.sun.star.ServiceManager' in "the project of path"


------解决方案--------------------
需要安装OpenOffice.org
------解决方案--------------------
1、检查一下是否安装过OpenOffice。
2、用命令行启动OpenOffice服务:
cd C:\Program Files\OpenOffice.org 3\program
C:\Program Files\OpenOffice.org 3\program>soffice -headless -accept="socket,host
=127.0.0.1,port=8100;urp;" -nofirststartwizard
然后再试验一下呢.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn