>  기사  >  백엔드 개발  >  php 利用openoffice把office转成pdf格式,该如何处理

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

WBOY
WBOY원래의
2016-06-13 12:59:50860검색

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
然后再试验一下呢.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.