PHP利用openoffice实现文档装换
2015-11-16 10:57
549 查看
openoffice
要实现文档转换为PDF,可利用jodconverter开源jar实现文档的转换。 而jodconverter的转换原理是利用openoffice实现转换。而jodconverter必须要有Java环境才可转换。故要实现word -> pdf -> swf需要安装的软件有
openoffice
jodconverter jar包
swftools
jdk/jre
word转换PDF
/** * * @param unknown $wordpath 要转换为PDF的word文件路径,全路径 如F://duanxin.doc * @param unknown $outPdfPath 转换成功后的PDF文件路径 * @param unknown $jodconverterPath 安装的jodconverter的jodconverter-cli-2.2.2.jar所在路径,我的为:D://jodconverter//jodconverter-2.2.2//lib//jodconverter-cli-2.2.2.jar * @return boolean */ function word2pdf ($wordpath, $outPdfPath, $jodconverterPath) { if (empty($wordpath)) return false; try { //这里是因为我吧Java(jdk/jre)加入了环境变量,故可直接写出下面这样, //相当于cmd窗口下直接写 java -jar jodconverter-cli-2.2.2.jar所在路径 word文件 PDF文件 $p = "java -jar ". $jodconverterPath . ' ' . $wordpath . ' ' . $outPdfPath; // 否则该前面应该加入jre/jdk的路径 exec($p); return true; } catch (Exception $e) { return false; } }
在执行转换前, 必须先启动openoffice服务,可直接用cmd窗口进入openoffice的安装目录即
C:\User\Administrator>cd D:\openoffice\program C:\User\Administrator>d: D:\openoffice\program>soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard
PDF2SWF
/** * * @param pdf2swf swftools安装路径,如 D://SWFTools//pdf2swf.exe * @param swfPath SWF文件 * @param pdfpath PDF文件 */ function pdf2swf($pdf2swf, $swfPath, $pdfpath){ $c = $pdf2swf . ' -o ' . $swfPath . ' -T -z -t -f ' . $pdfpath . ' -s flashversion=9'; exec($c); }
我的测试代码如下
<?php $startOpenofficeExc = 'soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard'; $openoffice = 'D://openoffice//program//'; $jodconverter = 'D://jodconverter//jodconverter-2.2.2//lib//jodconverter-cli-2.2.2.jar'; $testDoc = 'F://duanxin.doc'; $testOut = 'F://duanxin.pdf'; $javaPath = 'C:\Program Files\Java\jdk1.7.0_79\bin\\'; $pdf2swf = 'D://SWFTools//pdf2swf.exe'; //启动openoffice //exec($openoffice . $startOpenofficeExc); //pdf2swf -o /home/php/1.swf -T -z -t -f /home/php/1.pdf -s flashversion=9 /** * * @param unknown $wordpath * @param unknown $outPdfPath * @param unknown $jodconverterPath * @return boolean */ function word2pdf ($wordpath, $outPdfPath, $jodconverterPath) { if (empty($wordpath)) return false; try { $p = "java -jar ". $jodconverterPath . ' ' . $wordpath . ' ' . $outPdfPath; exec($p); return true; } catch (Exception $e) { return false; } } if(word2pdf($testDoc, $testOut, $jodconverter)) { header("location: show.php?swfName=duanxin.swf"); } else { echo 'error'; } function pdf2swf($pdf2swf, $swfPath, $pdfpath){ $c = $pdf2swf . ' -o ' . $swfPath . ' -T -z -t -f ' . $pdfpath . ' -s flashversion=9'; exec($c); } echo '--------------------------------------------------------------------------<br>'; $swfPath2 = 'F://duanxin.swf'; $pdfpath2 = 'F://duanxin.pdf'; pdf2swf($pdf2swf, $swfPath2, $pdfpath2);
显示SWF
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>查看</title> <meta charset="utf-8"> <meta http-equiv="pragma" < c05b span class="hljs-attribute">content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="js/flexpaper_flash.js"></script> <script language="JavaScript"> function Request(argname) { var url = document.location.href; var arrStr = url.substring(url.indexOf("?")+1).split("&"); //return arrStr; for(var i =0;i<arrStr.length;i++) { var loc = arrStr[i].indexOf(argname+"="); if(loc!=-1) { return arrStr[i].replace(argname+"=","").replace("?",""); break; } } return ""; } //使用Request("argname")即可得到参数值; </script> <style> body { margin: 0px;} </style> </head> <body > <div style="position:absolute;left:10px;top:10px;"> <a id="viewerPlaceHolder" style="width:690px;height:790px;display:block"></a> <script type="text/javascript"> var flexpaper = new FlexPaperViewer( 'FlexPaperViewer',//这里表明该FlexPaperViewer.swf是位于项目跟路径下 'viewerPlaceHolder', { config : { //要显示的SWF文件所在路径, 这里为根目录下的upload文件夹下 SwfFile : encodeURI("upload/"+Request("swfName")), ZoomInterval : 0.2, MinZoomSize : 0.2, MaxZoomSize : 1.4, ZoomTime : 0.5, Scale : 1, ZoomTransition : 'easeOut', FitPageOnLoad : true, FitWidthOnLoad : true, FullScreenAsMaxWindow : false, ProgressiveLoading : true, SearchMatchAll : true, ViewModeToolsVisible : true, ZoomToolsVisible : true, NavToolsVisible : true, CursorToolsVisible : true, SearchToolsVisible : true, localeChain: 'zh_CN' }}); </script> </div> </body> </html>
flexpaper_flash.js, FlexPaperViewer.swf 下载地址
相关文章推荐
- 解决openoffice无法启动问题
- Java+FlexPaper+swfTools仿文库文档在线阅读
- SPRINGMVC实现在线预览功能(openOffice)
- OpenOffice配合jodconverter多线程转换文件socket出现异常
- OpenOffice编译资源地址
- 将word、excel、ppt、html、txt,pdf转换成图片源代码
- 文档转换与演示组件---Openoffice+jodConver+SWFTOOls并发时的那些问题
- OpenOffice条件编译探讨
- OpenOffice编译不生成RPM包直接生成二进制包
- OpenOfficesy跳过某些模块后打包不成功
- OpenOffice编译时有时会自己生成一些系统自带动态库,而不是直接用系统提供的动态库。因此产生问题
- word转化为swf
- 使用swftools转化pdf为flash
- linux下openoffice的安装配置
- 如何打开plsql导出的CSV文件
- Ubuntu 服务器 PHP实现word、excel、ppt、pdf 等文档在线阅读功能的实现
- ubuntu下openoffice的安装
- pdf2swf process阻塞问题
- 最详细的文件在线预览(openoffice+swftools+flexpaper)
- Java:OpenOffice方式实现Word转pdf/html/htm