专栏首页LIN_ZONEwindows环境下 php 将office文件(word/excel/ppt)转化为pdf(转)

windows环境下 php 将office文件(word/excel/ppt)转化为pdf(转)

将office文件转化为pdf的方法有

1.利用openoffice提供的服务 (比较简单,但是转化的效果不太好)

2.使用office提供的服务 (注:这在windows服务器上,并且服务器上面安装了版本比较高的office)

下面重点介绍利用office服务将office文件转化为pdf

1.php开启dcom扩展

打开php.ini,搜索php_com_dotnet和php_com_dotnet:

extension=php_com_dotnet.dll   //把前面的分号去掉

com.allow_dcom = true  //改为true

重启apache

2.配置office组件服务

像这样的操作还有两个!!

 3.下面就该介绍将office文件转化为pdf的代码了

(1)ppt转pdf代码

 1 public function ppt_to_pdf() {
 2         $srcfilename = 'E:/aa.ppt';
 3         $destfilename = 'E:/aa.pdf';
 4         try {
 5             if(!file_exists($srcfilename)){
 6                 return;
 7             }
 8             $ppt = new \COM("powerpoint.application") or die("Unable to instantiate Powerpoint");
 9             $presentation = $ppt->Presentations->Open($srcfilename, false, false, false);
10             $presentation->SaveAs($destfilename,32,1);
11             $presentation->Close();
12             $ppt->Quit();
13         } catch (\Exception $e) {
14             if (method_exists($ppt, "Quit")){
15                 $ppt->Quit();
16             }
17             return;
18         }
19     }

(2)excel转pdf代码

 1     public function excel_to_pdf() {
 2         $srcfilename = 'E:/aa.xls';
 3         $destfilename = 'E:/aa.pdf';
 4         try {
 5             if(!file_exists($srcfilename)){
 6                 return;
 7             }
 8             $excel = new \COM("excel.application") or die("Unable to instantiate excel");
 9             $workbook = $excel->Workbooks->Open($srcfilename, null, false, null, "1", "1", true);
10             $workbook->ExportAsFixedFormat(0, $destfilename);
11             $workbook->Close();
12             $excel->Quit();
13         } catch (\Exception $e) {
14              echo ("src:$srcfilename catch exception:" . $e->__toString());
15             if (method_exists($excel, "Quit")){
16                 $excel->Quit();
17             }
18             return;
19         }
20     }

(3)word转pdf代码(其他的文本格式的文件也可以使用这个,例:txt文件)

 1     public function doc_to_pdf() {
 2         $srcfilename = 'E:/aa.doc';
 3         $destfilename = 'E:/aa.pdf';
 4         try {
 5             if(!file_exists($srcfilename)){
 6                 return;
 7             }
 8 
 9             $word = new \COM("word.application") or die("Can't start Word!");
10             $word->Visible=0;
11             $word->Documents->Open($srcfilename, false, false, false, "1", "1", true);
12            
13             $word->ActiveDocument->final = false;
14             $word->ActiveDocument->Saved = true;
15             $word->ActiveDocument->ExportAsFixedFormat(
16                 $destfilename,
17                 17,                         // wdExportFormatPDF
18                 false,                      // open file after export
19                 0,                          // wdExportOptimizeForPrint
20                 3,                          // wdExportFromTo
21                 1,                          // begin page
22                 5000,                       // end page
23                 7,                          // wdExportDocumentWithMarkup
24                 true,                       // IncludeDocProps
25                 true,                       // KeepIRM
26                 1                           // WdExportCreateBookmarks
27             );
28             $word->ActiveDocument->Close();
29             $word->Quit();
30         } catch (\Exception $e) {
31             if (method_exists($word, "Quit")){
32                 $word->Quit();
33             }
34             return;
35         }
36     }

注:本文参考地址:http://blog.csdn.net/sangjinchao/article/details/78053545

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • ubuntu下nodejs和npm的安装及升级

    参考:https://segmentfault.com/a/1190000007542620

    lin_zone
  • js 画布与图片的相互转化(canvas与img)

    //将图片对象转化为画布,返回画布 function ImageToCanvas(image) { var canvas = document.createE...

    lin_zone
  • 大型分布式网站架构设计与实践笔记(第一次看)

    lin_zone
  • IDEA有了这些,方便开发

    为了让开发者更规范、快速地工作,为了将编码规范推进并实施起来,该插件主要是在mapper接口方法和mapper XML文件之间来回切换非常方便,而且还可以自动生...

    麦克劳林
  • Mysql5.5——简单安装

    MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,...

    江小白
  • 领域驱动设计用语溯源-幻灯片

    http://www.umlchina.com/training/ddd20190712.pdf

    用户6288414
  • Go语言test之类方法测试

    Go语言提供了完善的单元测试支持,开发人员可以方便的编写测试代码,保证自己代码的质量。在目前的例子中,一般看到都是普通函数的例子。下面我将举类方法的测试例子来展...

    李海彬
  • 当DevOps邂逅云原生

    乌云笼罩下还敢谈创业?面对生存,小型创新企业如何把握领跑的机会? 同样面临转型,为什么别人是华丽转身响彻寰宇,而你却东张西望波澜不起。悄悄告诉你,越来越多的企业...

    腾讯云大学
  • 21秒看尽ImageNet屠榜模型,60+模型架构同台献艺

    ImageNet 是计算机视觉领域常用的数据集之一。在图像分类、目标分割和目标检测中有着无法撼动的地位。ImageNet 最初是由李飞飞等人在 CVPR 200...

    机器之心
  • word2007中word文件转化成PDF时中不让图片路径显示出来:

    word生成pdf经常会遇到这样的问题:鼠标移动到PDF中的图片上时总是显示图片路径。  最后我发现如下操作就可以去掉pdf中的图片路径(word200...

    Enjoy233

扫码关注云+社区

领取腾讯云代金券