最近一直在研究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);

PHP调用OpenOffice实现word转PDF相关推荐

  1. php 调用openoffice,PHP调用OpenOffice实现word转PDF的方法

    最近一直在研究PHP word文档转PDF,也在网上搜索了很多类似的资料,大多数都是通过OpenOffice进行转换的. 核心的代码如下: function MakePropertyValue($na ...

  2. 使用easyPoi导出word文档并使用openoffice把word转换为pdf格式

    easyPoi官网:http://www.wupaas.com/ 一.制作要导出的word模板(使用Word软件制作模板),把模板里的变量用{{字段名}}代替,把制作好的模版放到,如下图我放到stat ...

  3. linux下安装OpenOffice及使用java调用OpenOffice转换word、Excel为pdf并添加水印

    一.linux下安装OpenOffice OpenOffice是Apache的一款开源的软件,我主要是用来转换office文档成pdf文件,并给其添加水印等. (1)下载安装包 进入主题,首先我们需要 ...

  4. PHP windoews调用OpenOffice实现word/ppt转PDF-附带demo

    包有用 最近做一个项目,需要将用户上传的word,ppt文档转成PDF文档保存并打印,在网上找了很多资料,并不全面,爬过的坑记录下来. excel输出pdf还没成功 已经找到excel预览的方法的方法 ...

  5. java使用openOffice 实现word转pdf

    1.首先需要安装openOffice 2.下载jodconverter-2.2.2.jar package com.toutiao_efficiency.modules.documet_file.se ...

  6. openoffice将word转pdf中文乱码或消失的坑

    将windows系统下的中文字体文件(C:\Windows\Fonts),放到/usr/share/fonts下,必须重启openoffice. 转载于:https://www.cnblogs.com ...

  7. 使用freemarker导出word、pdf、图片

    安装openoffic启动服务请参考: java 调用OpenOffice将word格式文件转换为pdf格式 - warrior1234 - 博客园 maven包: <!-- https://m ...

  8. c 调用openoffice word转pdf_批量 Word 转 PDF 方法

    - START -手上有近百个 Word 文档需要转为 PDF, 怎么办?难道要一个一个的导出吗?确实,Office2010 以后版本的 Word 可以直接导出 PDF,是时候让 Python 来替我 ...

  9. openOffice word转pdf,pdf转图片优化版

    之前写了一个版本的,不过代码繁琐而且不好用,效率有些问题.尤其pdf转图片速度太慢.下面是优化版本的代码. spriing_boot 版本信息:2.0.1.RELEASE 1.配置信息: packag ...

最新文章

  1. Hadoop日记Day7---HDFS的WED端口
  2. java 039 s rule_Java开发架构篇:DDD模型领域层决策规则树服务设计
  3. 【Android 文件管理】分区存储 ( MediaStore 文件操作 )
  4. Winform中通过NPOI导出Excel的三种方式(HSSFWorkbook,XSSFWorkbook,SXSSFWorkbook)附代码下载
  5. php 高效缓存类,简单高效的文件缓存php类
  6. 怎样把电脑恢复出厂设置_数据蛙:苹果恢复出厂设置,彻底释放手机内存
  7. 计算机计算资源估计,项目时间管理中的计算题三点估算和关键路径法
  8. Sencha Touch Hello World(转)
  9. 进度条ProgressBar及ProgressDialog
  10. 如何在Mac上设置QLab工作区
  11. [裴礼文数学分析中的典型问题与方法习题参考解答]4.4.9
  12. Origin 数据渐变色
  13. Java用递归计算1加到100
  14. 完美国际架设mysql_完美国际SF-物理机架设服务端教程
  15. SQL 中的昨天、今天和明天
  16. Windows安装GoldenDict
  17. Acwing 1227. 分巧克力
  18. 四川省国际科技合作基地(国合基地)申报条件程序
  19. 暖心的坚果 Pro 3发布会,Smartisan OS亮点颇多
  20. 乡村振兴的道路,农村污水处理设备搭建至关重要

热门文章

  1. 中国剩余定理(Chinese remainder theorem, CRT)
  2. IBM WebSphere 开发者技术期刊: 最重要的 Java EE 最佳实践
  3. (转)QR分解求矩阵的全部特征值
  4. 【数据库】DBMS几种进程模型优劣与举例
  5. 7-9 集合相似度(25 分)
  6. 7-6二维数组-右转90度(10分)
  7. 学编程C#之制作一个2D游戏(愤怒的小鸟/走迷宫)来理解——基础编程和界面跳转
  8. foreach跳出本次/当前循环与终止循环方法及switch跳出方法
  9. 人脸爬取(人脸数据集的搜集)
  10. 用python画值日表