windows系統(tǒng) 安裝OpenOffice(office文檔轉(zhuǎn)成PDF文件)

摘要:最近在做文件管理系統(tǒng)的時候张足,需要將office文檔轉(zhuǎn)成PDF文件骤星,于是想到調(diào)用OpenOffice軟件的com組件去處理

1.首先是下載OpenOffice安裝包(官網(wǎng)下載需要翻墻流强,推薦云墻脑慧,購買流量下載還是蠻快的)

? ? ? ? 云盤:https://pan.baidu.com/s/1i43GzPV

2.配置組件服務(wù)

? ? ? ? A.OpenOffice 安裝完成之后抡驼,按 win+R 快捷鍵進入運行菜單阳藻,輸入 Dcomcnfg 打開組件服務(wù)

????????B.

????????C.右鍵點擊屬性選擇安全晰奖,下面都選擇自定義

然后選擇前兩個的編輯,分別選中所有權(quán)限


????????D.確定后選擇標識腥泥,并將用戶賬號選擇為 交互式用戶.


3.使用命令后臺啟動服務(wù)(只需要執(zhí)行一次匾南,就可以使軟件一直在后臺運行,即使重啟服務(wù)器也不受影響)

? ? 首先需要找到你的安裝位置(在C盤搜索soffice.exe文件蛔外,發(fā)現(xiàn)在C:\Program Files\OpenOffice 4\program)

? ? 所以先進入項目位置c:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? cd?Program Files\OpenOffice 4\program

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 輸入命令:soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;"-nofirststartwizard啟動

4.在php.ini中開啟com_dotnet擴展(我用的PHP7)蛆楞,添加extension=php_com_dotnet.dll,重啟服務(wù)器后


現(xiàn)在我們就可以去新建一個test.php文件進行測試了

5.代碼如下:

classPDFConverter

{

private$com;

/**

* 需要安裝openoffice并在后臺運行

* soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

*/

public function__construct()

{

try{

$this->com=newCOM('com.sun.star.ServiceManager');

}catch(Exception$e) {

die('Please be sure that OpenOffice.org is installed.');

}

}

/**

* 執(zhí)行PDF文件(絕對路徑)轉(zhuǎn)換

*@param$source [source file]

*@param$export [export file]

*/

public functionexecute($source,$export)

{

$source='file:///'.str_replace('\\','/',$source);

$export='file:///'.str_replace('\\','/',$export);

$this->convertProcess($source,$export);

}

/**

* 獲取PDF頁面

*@param$pdf_path [absolute path]

*@returnint

*/

public functiongetPages($pdf_path)

{

if(!file_exists($pdf_path))return0;

if(!is_readable($pdf_path))return0;

if($fp=fopen($pdf_path,'r')) {

$page=0;

while(!feof($fp)) {

$line=fgets($fp,255);

if(preg_match('/\/Count [0-9]+/',$line,$matches)) {

preg_match('/[0-9]+/',$matches[0],$matches2);

$page= ($page<$matches2[0]) ?$matches2[0] :$page;

}

}

fclose($fp);

return$page;

}

return0;

}

private functionsetProperty($name,$value)

{

$struct=$this->com->Bridge_GetStruct('com.sun.star.beans.PropertyValue');

$struct->Name=$name;

$struct->Value=$value;

return$struct;

}

private functionconvertProcess($source,$export)

{

$desktop_args=array($this->setProperty('Hidden',true));

$desktop=$this->com->createInstance('com.sun.star.frame.Desktop');

$export_args=array($this->setProperty('FilterName','writer_pdf_Export'));

$program=$desktop->loadComponentFromURL($source,'_blank',0,$desktop_args);

$program->storeToURL($export,$export_args);

$program->close(true);

}

}

//$arr = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx');

$converter=newPDFConverter();

$source=__DIR__.'/office/test.'.'pptx';//轉(zhuǎn)換前文件(絕對路徑)

$export=__DIR__.'/pdf/test.'.'pptx'.'.pdf';//轉(zhuǎn)換后文件(絕對路徑)

$converter->execute($source,$export);


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末夹厌,一起剝皮案震驚了整個濱河市豹爹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矛纹,老刑警劉巖臂聋,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異或南,居然都是意外死亡孩等,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門采够,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肄方,“玉大人,你說我怎么就攤上這事蹬癌∪ㄋ” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵逝薪,是天一觀的道長伴奥。 經(jīng)常有香客問我,道長翼闽,這世上最難降的妖魔是什么拾徙? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮感局,結(jié)果婚禮上尼啡,老公的妹妹穿的比我還像新娘暂衡。我一直安慰自己,他們只是感情好崖瞭,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布狂巢。 她就那樣靜靜地躺著,像睡著了一般书聚。 火紅的嫁衣襯著肌膚如雪唧领。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天雌续,我揣著相機與錄音斩个,去河邊找鬼。 笑死驯杜,一個胖子當著我的面吹牛受啥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸽心,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼滚局,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了顽频?” 一聲冷哼從身側(cè)響起藤肢,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎糯景,沒想到半個月后嘁圈,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡莺奸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年丑孩,在試婚紗的時候發(fā)現(xiàn)自己被綠了冀宴。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片灭贷。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖略贮,靈堂內(nèi)的尸體忽然破棺而出甚疟,到底是詐尸還是另有隱情,我是刑警寧澤逃延,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布览妖,位于F島的核電站,受9級特大地震影響揽祥,放射性物質(zhì)發(fā)生泄漏讽膏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一拄丰、第九天 我趴在偏房一處隱蔽的房頂上張望府树。 院中可真熱鬧俐末,春花似錦、人聲如沸奄侠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垄潮。三九已至烹卒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間弯洗,已是汗流浹背旅急。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留涂召,地道東北人坠非。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像果正,于是被迫代替她去往敵國和親炎码。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354