亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

php excel如何轉換成pdf

發布時間:2021-07-19 09:39:52 來源:億速云 閱讀:287 作者:chen 欄目:編程語言

這篇文章主要介紹“php excel如何轉換成pdf”,在日常操作中,相信很多人在php excel如何轉換成pdf問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”php excel如何轉換成pdf”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

php excel轉換成pdf的方法:首先在App下建一個文件夾Libs;然后把類庫放進去,并寫好命名空間;接著修改composer.json;最后在項目根目錄下執行composer dump-autoload即可。

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

php excel怎么轉換成pdf?

php excel轉pdf

接下來說說excel轉pdf這個坑,這個是真坑啊,好多說什么用dompdf、mpdf。最后我都把phpexcel換成PhpSpreadsheet這個了,總算是轉換成功了,但是問題來了,中文亂碼,樣式大改變,果斷先放棄,看看別的辦法,實在不行再回來研究。試試之前看的com加openoffice吧,這個可以實現,最開始覺得麻煩沒愛用,先上代碼。

<?php
namespace App\Libs;
 
class Office2pdf
{
private $osm;
public function __construct()
{
$this->osm = new \COM("com.sun.star.ServiceManager")or die ("Please be sure that OpenOffice.org is installed.n"); 
}
public function MakePropertyValue($name,$value)
{
$oStruct = $this->osm->Bridge_GetStruct("com.sun.star.beans.PropertyValue");
$oStruct->Name = $name;
$oStruct->Value = $value;
return $oStruct;
}
public function transform($input_url, $output_url)
{
$args = array($this->MakePropertyValue("Hidden",true));
 
$oDesktop = $this->osm->createInstance("com.sun.star.frame.Desktop");
 
$oWriterDoc = $oDesktop->loadComponentFromURL($input_url,"_blank", 0, $args);
$export_args = array($this->MakePropertyValue("FilterName","writer_pdf_Export"));
 
$oWriterDoc->storeToURL($output_url,$export_args);
$oWriterDoc->close(true);
return $this->getPdfPages($output_url);
}
public function run($input,$output)
{
$input = "file:///" . str_replace("\\","/",$input);
$output = "file:///" . str_replace("\\","/",$output);
return $this->transform($input, $output);
}
/**
* 獲取PDF文件頁數的函數獲取
* 文件應當對當前用戶可讀(linux下)
* @param  [string] $path [文件路徑]
* @return int
*/
public function getPdfPages($path)
{
if(!file_exists($path)) return 0;
if(!is_readable($path)) return 0;
// 打開文件
$fp=@fopen($path,"r");
if (!$fp) 
{
return 0;
}
else 
{
$max=0;
while(!feof($fp)) 
{
$line = fgets($fp,255);
if (preg_match('/\/Count [0-9]+/', $line, $matches))
{
preg_match('/[0-9]+/',$matches[0], $matches2);
if ($max<$matches2[0]) $max=$matches2[0];
}
}
fclose($fp);
// 返回頁數
return $max;
}
}
 
}

這個方法是轉發的,在這里謝過大神,想必都看到了,有命名空間,那就簡單說一下laravel引用自己的類庫方法吧,度娘都可以找到,在App下建一個文件夾Libs,然后把類庫放進去,寫好命名空間,然后在composer.json中……上代碼

"autoload": {
        "files": [
            "app/Libs/Office2pdf.php"
        ]
    }
/*這段是加入的,如果有files直接把你的類文件路徑放進去就行
"files": [
            "app/Libs/Office2pdf.php"
        ]
*/

然后在項目根目錄下執行composer dump-autoload,然后在控制器中引用,new就行了

use app\Libs\Office2pdf;
$r = new Office2pdf;  //實例化后就可以用了

邏輯好像出現了一點問題,沒有告訴你們安裝openoffice,去下載一個安裝上,然后需要設置一下,東西都寫一起了,有點亂啊,接下來上配置,百度都有教程,我也記錄下來吧,方便以后自己用

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

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

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

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

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

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

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

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

接下來配置開啟php擴展

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

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

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

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

然后用上面的類方法就可以實現excel轉pdf了,這里還有一些需要注意的就是打印區域、打印大小、是否打印到一頁,這個問題要在excel模板中定義好,轉換的時候會讀取excel中的源數據,這個問題也難了我好久,好像就沒有不難的,如果你們厲害可以研究下有沒有接口可以在openoffice中設置,如果有請把鏈接給我,嘿嘿。

到此,關于“php excel如何轉換成pdf”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

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

php
AI

当雄县| 南部县| 西宁市| 县级市| 新巴尔虎右旗| 松阳县| 南丹县| 惠水县| 河北区| 东城区| 贺兰县| 工布江达县| 思南县| 新余市| 修水县| 玛纳斯县| 乐亭县| 甘孜县| 莆田市| 哈巴河县| 屯门区| 临海市| 中西区| 阿荣旗| 巴林左旗| 遂平县| 巧家县| 屯门区| 手机| 广西| 三原县| 贵德县| 叙永县| 类乌齐县| 马尔康县| 盐池县| 平凉市| 枝江市| 公主岭市| 专栏| 泗阳县|