中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php如何將work轉為pdf

發布時間:2021-09-30 13:33:08 來源:億速云 閱讀:219 作者:小新 欄目:編程語言

這篇文章主要介紹php如何將work轉為pdf,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

方法:1、打開php.ini文件,添加“extension=php_com_dotnet.dll”代碼,去掉“com.allow_dcom=true”前的“;”;2、配置office支持;3、利用PDFConverter類中的方法進行轉換。

本教程操作環境:windows7系統、PHP7.1版,DELL G3電腦

一、配置PHP擴展

如果是 PHP5.4 以前的版本,需要在 php.ini 里把 com.allow_dcom = true 打開(即去掉前面的分號)。

如果是 PHP5.4 之后的版本,則要在 php.ini 里增加一行擴展 extension = php_com_dotnet.dll

重啟 Apache 或 IIS 服務器,打印 phpinfo() 信息,檢查 com_dotnet 擴展是開啟。

php如何將work轉為pdf

↑ 檢查 php 的 ext 目錄中 是否存在 com_dotnet.dll 文件,如果沒有請自行下載對應版本的 dll

二、配置office支持

OpenOffice 是一套開源跨平臺的辦公軟件,由許多自由軟件人士共同來維持,讓大家能在 Microsoft Office 之外,還能有免費的 Office 可以使用。

OpenOffice 與微軟的辦公軟件套件兼容,能將 doc、xls、ppt 等文件轉換為 PDF 格式,其功能絕對不比 Microsoft Office 差。

OpenOffice 官網:http://www.openoffice.org/

OpenOffice 下載:http://www.openoffice.org/download/index.html

php如何將work轉為pdf

OpenOffice 需要 java 支持,請確認安裝了 JDK,并配置了 JRE 環境變量。

1. 配置組件服務

OpenOffice 安裝完成之后,按 win+R 快捷鍵進入運行菜單,輸入 Dcomcnfg 打開組件服務。

[組件服務] >> [計算機] >> [我的電腦] >> [DCOM配置] >> [OpenOffice Service Manager]

php如何將work轉為pdf

右鍵打開屬性面板,選擇安全選項卡,分別在 啟動和激活權限訪問權限 上勾選自定義,添加 Everyone 的權限。

php如何將work轉為pdf

↑ 啟動和激活權限 和 訪問權限 都使用自定義配置

php如何將work轉為pdf

↑ 添加 Everyone 用戶組,記得確認前先檢查名稱

php如何將work轉為pdf

↑ 兩個自定義配置相同,允許 Everyone 擁有所有權限

再選擇標識選項卡,勾選 交互式用戶,保存設置后退出。

php如何將work轉為pdf

2. 后臺運行軟件

安裝完 OpenOffice 后,需要啟動一次確認軟件可以正常運行,然后再打開命令行運行以下命令:

切換到安裝目錄: cd C:\Program Files\OpenOffice 4\program

后臺運行該軟件: soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

PS:該命令只需要執行一次,就可以使軟件一直在后臺運行,即使重啟服務器也不受影響。

三、實現文件轉換

PDF 轉換工具(支持 doc, docx, xls, xlsx, ppt, pptx 等格式)

class PDFConverter
{    private $com;    /**
     * need to install openoffice and run in the background
     * soffice -headless-accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard     */
    public function __construct()
    {        try {            $this->com = new COM('com.sun.star.ServiceManager');
        } catch (Exception $e) {            die('Please be sure that OpenOffice.org is installed.');
        }
    }    /**
     * Execute PDF file(absolute path) conversion
     * @param $source [source file]
     * @param $export [export file]     */
    public function execute($source, $export)
    {        $source = 'file:///' . str_replace('\\', '/', $source);        $export = 'file:///' . str_replace('\\', '/', $export);        $this->convertProcess($source, $export);
    }    /**
     * Get the PDF pages
     * @param $pdf_path [absolute path]
     * @return int     */
    public function getPages($pdf_path)
    {        if (!file_exists($pdf_path)) return 0;        if (!is_readable($pdf_path)) return 0;        if ($fp = fopen($pdf_path, 'r')) {            $page = 0;            while (!feof($fp)) {                $line = fgets($fp, 255);                if (preg_match('/\/Count [0-9]+/', $line, $matches)) {                    preg_match('/[0-9]+/', $matches[0], $matches2);                    $page = ($page < $matches2[0]) ? $matches2[0] : $page;
                }
            }            fclose($fp);            return $page;
        }        return 0;
    }    private function setProperty($name, $value)
    {        $struct = $this->com->Bridge_GetStruct('com.sun.star.beans.PropertyValue');        $struct->Name = $name;        $struct->Value = $value;        return $struct;
    }    private function convertProcess($source, $export)
    {        $desktop_args = array($this->setProperty('Hidden', true));        $desktop = $this->com->createInstance('com.sun.star.frame.Desktop');        $export_args = array($this->setProperty('FilterName', 'writer_pdf_Export'));        $program = $desktop->loadComponentFromURL($source, '_blank', 0, $desktop_args);        $program->storeToURL($export, $export_args);        $program->close(true);
    }
}

使用 PDFConverter(必須傳入絕對路徑)

$arr = array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx');

$converter = new PDFConverter();

foreach ($arr as $ext) {
    $source = __DIR__ . '/office/test.' . $ext;
    $export = __DIR__ . '/pdf/test.' . $ext . '.pdf';
    $converter->execute($source, $export);
    echo '<p>' . $ext . ' Done</p>';
}

以上是“php如何將work轉為pdf”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乾安县| 敖汉旗| 逊克县| 称多县| 云林县| 吉木萨尔县| 东安县| 杭州市| 黔西| 桂平市| 内丘县| 陇西县| 龙口市| 当雄县| 和龙市| 合阳县| 鲜城| 金坛市| 慈溪市| 三明市| 富阳市| 涡阳县| 老河口市| 防城港市| 德州市| 枞阳县| 新源县| 清苑县| 边坝县| 海南省| 泽州县| 自治县| 永定县| 泸西县| 铜陵市| 乌什县| 韶关市| 华阴市| 磴口县| 驻马店市| 叶城县|