php使用COM组件 office文件(word/excel/ppt)转pdf文件

  1. php7.0 - office2013 office_to_pdf php开启dcom扩展

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

    extension=php_com_dotnet.dll   //把前面的分号去掉
    com.allow_dcom = true  //改为true
    

    重启服务

  2. 配置office组件服务
    在这里插入图片描述

  3. 支持word
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  4. 如果这种方式找不到可以使用另一种方式
    在这里插入图片描述在这里插入图片描述其他步骤上面相同

  5. 使用php操作文档生成pdf

/**
* @description: word转pdf
* @param srcfilename  要转换的word的全路径 E:/aa.doc
* @param destfilename 转换后的pdf的全路径   E:/aa.pdf
* @return: 
*/  
function doc_to_pdf($srcfilename,$destfilename) {
    try {
         if(!file_exists($srcfilename))return;
         $word = new \COM("word.application") or die("Can't start Word!");
         $word->Visible=0;
         $word->Documents->Open($srcfilename, false, false, false, "1", "1", true);
           
         $word->ActiveDocument->final = false;
         $word->ActiveDocument->Saved = true;
         $word->ActiveDocument->ExportAsFixedFormat(
             $destfilename,
             17,                         // wdExportFormatPDF
             false,                      // open file after export
             0,                          // wdExportOptimizeForPrint
             3,                          // wdExportFromTo
             1,                          // begin page
             5000,                       // end page
             7,                          // wdExportDocumentWithMarkup
             true,                       // IncludeDocProps
             true,                       // KeepIRM
             1                           // WdExportCreateBookmarks
         );
         $word->ActiveDocument->Close();
         $word->Quit();
     } catch (\Exception $e) {
         if (method_exists($word, "Quit"))$word->Quit();
         return;
     }
}
/**
 * @description: ppt转pdf
 * @param srcfilename  要转换的ppt的全路径 E:/aa.doc E:/aa.ppt
 * @param destfilename 转换后的pdf的全路径 E:/aa.pdf
 * @return: 
 */
function ppt_to_pdf($srcfilename,$destfilename) {
    try {
        if(!file_exists($srcfilename)){
            return;
        }
        $ppt = new \COM("powerpoint.application") or die("Unable to instantiate Powerpoint");
        $presentation = $ppt->Presentations->Open($srcfilename, false, false, false);
        $presentation->SaveAs($destfilename,32,1);
        $presentation->Close();
        $ppt->Quit();
    } catch (\Exception $e) {
        if (method_exists($ppt, "Quit")){
            $ppt->Quit();
        }
        return;
    }
}

```php
/**
 * @description: excel转pdf
 * @param srcfilename  要转换的excel的全路径 E:/aa.doc E:/aa.xls
 * @param destfilename 转换后的pdf的全路径 E:/aa.pdf
 * @return: 
 */
function excel_to_pdf($srcfilename,$destfilename) {
    try {
        if(!file_exists($srcfilename)){
            return;
        }
        $excel = new \COM("excel.application") or die("Unable to instantiate excel");
        $workbook = $excel->Workbooks->Open($srcfilename, null, false, null, "1", "1", true);
        $workbook->ExportAsFixedFormat(0, $destfilename);
        $workbook->Close();
        $excel->Quit();
    } catch (\Exception $e) {
            echo ("src:$srcfilename catch exception:" . $e->__toString());
        if (method_exists($excel, "Quit")){
            $excel->Quit();
        }
        return;
    }
}

如果代码执行报错,将office设置为默认
在这里插入图片描述
win10
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值