最近一直在研究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 'Source: [automation bridge] Description: com.sun.star.task.ErrorCodeIOException: ' in I:\phpStudy\WWW\DocPreview\test2.php on line 27

( ! ) com_exception: Source: [automation bridge] Description: 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的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

php 调用openoffice,PHP调用OpenOffice实现word转PDF的方法相关推荐

  1. c html转换成word,C#实现HTML转WORD及WORD转PDF的方法

    本文实例讲述了C#实现HTML转WORD及WORD转PDF的方法.分享给大家供大家参考.具体如下: 功能:实现HTML转WORD,WORD转PDF 具体代码如下: using System; usin ...

  2. 苹果手机怎么编辑word文档_word文档转pdf要怎么实现?word转pdf好方法推荐

    word文档转pdf要怎么实现?2020上半年,我应聘到了一家公司当财务文员,由此踏入了心念已久的职场生活.刚入职时候,公司便安排了全部新人进入系统学习阶段,各种与财务相关的知识理论文件资料被塞满到我 ...

  3. 免费!在线WORD转PDF的方法分享

    为什么一般会把WORD文档转成PDF呢?那是因为PDF便于查阅,兼容性.占用内存大小都比Word更好.所以大部分文件格式会使用PDF格式传输,今天就和大家分享一个在线WORD转PDF的方法,并且是有免 ...

  4. JAVA POI Word转PDF convert方法 NullPointException

    JAVA POI Word转PDF convert方法 NullPointException 如果操作过通过POI操作过Word,请保证创建run之后run的值不为null,为null将在转换时报错. ...

  5. Java关于word转pdf工具方法的几种解决方案和我遇到一些问题(html中转、jacob、Docx4j)

    本文参考文章如下 java转pdf(html转为pdf),解决中文乱码,标签不规范等问题 Java 使用 jacob 将 word 文档转换为 pdf 文件 java实现word生成并转pdf doc ...

  6. word转换php方法,PHP实现Word转换PDF的方法

    PHP也可以实现导出Word文档为PDF的功能,不过要借助于第三方的类库,今天我们将为大家介绍PHP依靠com.sun.star.ServiceManager来转换Word为PDF文档的相关技巧. P ...

  7. Word转pdf一个方法就可以完成~手机电脑都可以免费使用~办公必备

    我们有时编辑完Word文件需要打印或发送给他人查看,一般会先转换为PDF格式,这样在别的电脑上打开时就不会出现格式的变动,也不会出现因为版本而无法打开的问题,那么用什么方法可以将Word转换成PDF文 ...

  8. Word怎么转PDF?三种Word转PDF的方法!

    在职场办公中有时候也需要我们将Word转成PDF文件,主要原因是 PDF 格式在可视化.可读性和文件保护方面优于 Word 文档格式.今天分享三种Word转PDF文件的方法. 1.使用 Microso ...

  9. 小圆象PDF转换器:Word转PDF转换软件有哪些?Word转PDF简单方法分享

    当我们刚接触到电脑时,我们最先使用的文档格式一般是 Word 格式,这种格式适合我们记录文件,在记录和书写方面有很大的优势.但是我们编辑完Word文档后,我们会选择转换成PDF格式保存,因为PDF格式 ...

最新文章

  1. 学习flask的网址
  2. java 08_java 08 权限修饰符 编译运行
  3. STL:Numberic_limit()
  4. linux7 语言包,Centos 7中文语言包的安装及中文支持
  5. STM32F7xx —— 96位唯一ID
  6. 4-4:TCP协议之TCP头部格式详解
  7. 数据库 之 事务控制和隔离级别
  8. 计算机桌面打开图像管理,如何给电脑桌面设置几张图片自动播放
  9. 通过实现IHttpModule初始化Nhibernate的Session
  10. 基础总结篇之二:Activity的四种launchMode
  11. css将空的div撑开,如何使用css将空的浮动div伸展到可用的全高度?
  12. python输入文字、成为字典_python中将字典形式的数据循环插入Excel
  13. 金融资产管理公司 不良资产的发言人
  14. 计算机网络教室管理制度
  15. word中如何插入参考文献
  16. java8之CompletableFuture
  17. 怎么把多个图片转成一个文字版的Word呢
  18. Java集合(一)Java集合及其关系
  19. 英孚教育APP应用获全球杰出商业银奖
  20. P1291 SHOI2002 百事世界杯之旅

热门文章

  1. Hashmap扩容时出现循环链表(jdk1.8把头插法换成了尾插法的原因)
  2. Java内存泄露8种情况的总结
  3. 奇虎360WEB平台部招贤纳士之产品经理、开发工程师
  4. Jar包冲突解决方法 Unknown lifecycle phase mvn Eclipse中执行maven命令
  5. python php multiprocessing,Python多进程并发(multiprocessing)用法实例详解
  6. Java校招笔试题-Java基础部分(一)
  7. Go语言如何操纵Kafka才能保证消息不丢?
  8. 什么是 gRPC ?
  9. GitLab持续集成在商用项目中的应用实践
  10. 错误:Type javax.xml.bind.JAXBContext not present