前提 需要引入 两个包
phpoffice/phpword
 mpdf/mpdf 
word转html
html转pdf
成功绕开了office 软件包
但是有两个缺点就是
1 经过两步操作 略麻烦
2 html 转pdf 的样式问题
在浏览phpoffice/word 包时偶然发现如下代码
 public static function createWriter(PhpWord $phpWord, $name = 'Word2007')
     {
         if ($name !== 'WriterInterface' && !in_array($name, array('ODText', 'RTF', 'Word2007', 'HTML', 'PDF'), true)) {
             throw new Exception("\"{$name}\" is not a valid writer.");
         }
  
         $fqName = "PhpOffice\\PhpWord\\Writer\\{$name}";
  
         return new $fqName($phpWord);
     }
 顿时来了兴趣 难道 可以直接 word 转PDF
当尝试 如下代码时
$obj->createWriter($phpWord, 'PDF');
 不出意外报错了 --!
PDF rendering library or library path has not been defined.
当然剩下的就是百度
千可怜万可怜
在仅有的一条条目里找到了解决方法(虽然是英文 勉强看懂了。。。)
引入mdf包
修改后代码如下
public function wordToPdf($filePath, $savePdf = false)
     {
         if (!file_exists($filePath)) {
             throw new \Exception("文件不存在,请检查文件路径");
         }
         //第二个参数是默认值,可以不填写
         $phpWord = IOFactory::load($filePath, "Word2007");
         $PdfPath = realpath($_SERVER['DOCUMENT_ROOT']. '/../vendor/mpdf/mpdf');
         \PhpOffice\PhpWord\Settings::setPdfRendererPath($PdfPath);
         \PhpOffice\PhpWord\Settings::setPdfRendererName('MPDF');
         $writer = IOFactory::createWriter($phpWord, "PDF");
         if ((bool) $savePdf) {
             //返回PDF实体内容
             return $writer->getContent();
         } else {
             if ($this->isDownload) {
                 //直接显示 PDF
                 $phpWord->save('php://output', 'PDF');
                 exit;
             } else {
                 //保存至服务器
                 $phpWord->save($this->saveFilePath, 'PDF');
                 //返回文件路径
                 return $this->saveFilePath;
             }
         }
     }
 另附 mpdf 解决 中文乱码问题
'autoScriptToLang' => true,
  
 'autoLangToFont' => true,










