通过phpoffice将word与excel文件转成PDF文件

1.首先需要对应的库

composer require phpoffice/phpword
composer require phpoffice/phpspreadsheet
composer require mpdf/mpdf

2.相关代码如下

<?php

namespace common;

use PhpOffice\PhpWord\PhpWord;
use PhpOffice\PhpWord\IOFactory;
use PhpOffice\PhpWord\Settings;
use PhpOffice\PhpSpreadsheet\IOFactory as SpreadIoFactory;
use PhpOffice\PhpPresentation\IOFactory as PowerpointIoFactory;
use common\PDF;

/**
 * 提供Office管理服务
 * @name Office.php
 * @package jypp
 * @category model
 * @link http://www.chanekeji.com
 * @author mengchen
 * @version 1.0
 * @copyright CHANGE INC
 * @since 2023-02-15
 */
class Office
{   
    /**
     * word转pdf
     * @param string $wordPath 
     * @param string $fileName
     */
    public function wordToPdf($wordPath = '',$fileName = 'output')
    {   
        // 设置具体存放路径
        $basePath = sprintf('%spublic/upload/pdf/%s',ROOT_PATH,date('Ymd'));
        $path = sprintf('%s/%s.pdf',$basePath,$fileName);
        if (!file_exists($basePath)) {
            mkdir($basePath, 0755, true); //创建目录
        }
        // 创建一个新的 PHPWord 实例
        $phpWord = new PhpWord();
        Settings::setPdfRendererPath(sprintf('%svendor/mpdf/mpdf',ROOT_PATH));
        //设置转换pdf的类库名(DomPDF、MPDF、TCPDF)需要下载对应的类库
        Settings::setPdfRendererName('MPDF');
        // 从 Word 文档中加载内容
        $wordReader = IOFactory::createReader('Word2007');
        $phpWord = $wordReader->load($wordPath);

        // 用 PHPWord 创建 PDF 文件
        $xmlWriter = IOFactory::createWriter($phpWord, 'PDF');
        $xmlWriter->save($path);
        if(file_exists($path)){
            $pdf = new PDF();
            $pngs = $pdf->pdfToPng($path);
            if(count($pngs) > 0){
                unlink($path);
                return $pngs;
            }
            return [];
        }else{
            return [];
        }
    }

    /**
     * excel转pdf
     * @param string $wordPath 
     * @param string $fileName
     */
    public function excelToPdf($excelPath = '',$fileName = 'output')
    {   
        // 设置具体存放路径
        $basePath = sprintf('%spublic/upload/pdf/%s',ROOT_PATH,date('Ymd'));
        $path = sprintf('%s/%s.pdf',$basePath,$fileName);
        if (!file_exists($basePath)) {
            mkdir($basePath, 0755, true); //创建目录
        }
        
        /*第一步:打开excel文件*/
        $Excelreader = SpreadIoFactory::createReaderForFile($excelPath);
        $ExcelObj= $Excelreader ->load($excelPath);//打开后的excel对象
        
        /*第二步:另存为pdf文件*/
        $PDFWriter = SpreadIoFactory::createWriter($ExcelObj,'Mpdf');
        $PDFWriter ->save($path);
        if(file_exists($path)){
            $pdf = new PDF();
            $pngs = $pdf->pdfToPng($path);
            if(count($pngs) > 0){
                unlink($path);
                return $pngs;
            }
            return [];
        }else{
            return [];
        }
    }
}

相关推荐

  1. 通过phpofficewordexcel文件PDF文件

    2024-03-10 11:34:03       39 阅读
  2. docx、excelwordpdf文件

    2024-03-10 11:34:03       43 阅读
  3. pythonword文件转换pdf文件

    2024-03-10 11:34:03       55 阅读
  4. pythonExcel文档.db数据库文件

    2024-03-10 11:34:03       57 阅读
  5. python.db数据库文件Excel文档

    2024-03-10 11:34:03       59 阅读
  6. LibreOffice word,excel,PowerPoint文件转换PDF

    2024-03-10 11:34:03       36 阅读
  7. wordexcel文件PDF(documents4j方式,简单)

    2024-03-10 11:34:03       61 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-10 11:34:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-10 11:34:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-10 11:34:03       82 阅读
  4. Python语言-面向对象

    2024-03-10 11:34:03       91 阅读

热门阅读

  1. 在GitLab Python库中,mr.changes()和mr.diffs()的区别

    2024-03-10 11:34:03       45 阅读
  2. 第4章---初始化UI控件(UI架构搭建)

    2024-03-10 11:34:03       33 阅读
  3. Ruby网络爬虫教程:从入门到精通下载图片

    2024-03-10 11:34:03       41 阅读
  4. 1033 旧键盘打字

    2024-03-10 11:34:03       39 阅读
  5. 浏览器预览word

    2024-03-10 11:34:03       38 阅读
  6. 解决由NVCC编译优化所产生的Bug

    2024-03-10 11:34:03       43 阅读
  7. 文件预览(img,doc,pdf,xls)

    2024-03-10 11:34:03       39 阅读
  8. ffmpeg批量旋转视频

    2024-03-10 11:34:03       45 阅读
  9. 抖音视频评论区用户采集工具使用教程

    2024-03-10 11:34:03       155 阅读