PHP调用OpenOffice实现word转PDF的方法
发布:smiling 来源: PHP粉丝网 添加日期:2021-08-17 21:57:13 浏览: 评论:0
下面小编就为大家带来一篇PHP调用OpenOffice实现word转PDF的方法,小编觉得挺不错的,现在就分享给大家,也给大家做个参考,一起跟随小编过来看看吧
最近一直在研究PHP word文档转PDF,也在网上搜索了很多类似的资料,大多数都是通过OpenOffice进行转换的。
核心的代码如下:
- 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);
- }
- $doc_file=dirname(__FILE__)."/11.doc"; //源文件,DOC或者WPS都可以
- $output_file=dirname(__FILE__)."/11.pdf"; //欲转PDF的文件名
- $doc_file = "file:///" . $doc_file;
- $output_file = "file:///" . $output_file;
- $document->word2pdf($doc_file,$output_file);
用上述发现代码一直在报错
( ! ) Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> [automation bridge] <br/><b>Description:</b> com.sun.star.task.ErrorCodeIOException: ' in I:\phpStudy\WWW\DocPreview\test2.php on line 27
( ! ) com_exception: <b>Source:</b> [automation bridge] <br/><b>Description:</b> com.sun.star.task.ErrorCodeIOException: in I:\phpStudy\WWW\DocPreview\test2.php on line 27
最后发现原来是转出路径的问题:通过调试得出上述代码的转出路径$output_file 是file:///I:\phpStudy\WWW\DocPreview\sdds.pdf。
然而storeToURL这个方法里面需要的路径是这样的:file:///I:/phpStudy/WWW/DocPreview/sdds.pdf。
因此只需要将$output_file的"\"替换为“/”
- $doc_file=dirname(__FILE__)."/11.doc"; //源文件,DOC或者WPS都可以
- $output_file=dirname(__FILE__)."/11.pdf"; //欲转PDF的文件名
- $output_file=str_replace("\\","/",$output_file);
- $doc_file = "file:///" . $doc_file;
- $output_file = "file:///" . $output_file;
- $document->word2pdf($doc_file,$output_file);
Tags: OpenOffice word转PDF
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)