整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          php調用python腳本將word轉為html代碼

          詳細]php調用python腳本,將word轉為html代碼及調用失敗處理

          起因:因為公司遇到發稿問題,很多人喜歡用word編碼,然后再發布到網站上。PHP的包中雖然有部分可以使用的類庫,但是對于圖片始終處理不好,我就想到了python。研究了下,python將word轉為html還真是方便。但是,怎么結合到服務器上呢?我們的服務器是用PHP開發的。

          1:python腳本

          #!/usr/bin/python# -*- coding: UTF-8 -*-import sysfrom pydocx import PyDocXreload(sys)sys.setdefaultencoding('utf8')FileName = sys.argv[1] #獲取文件名參數ShortName = sys.argv[2] #獲取文件名參數html = PyDocX.to_html(FileName) # f = open("/www/wwwroot/micuer.com/pythoncode/runtime/99.txt", 'w') #服務器的全路徑# f.write(html)# f.close()print(html)

          2:php處理腳本

          public function uploadword(){        try {            $file = request()->file("file");            // 上傳到本地服務器            $savename = \think\facade\Filesystem::disk('upload')->putFile( 'word', $file);            $shotrname = time().".txt"; // 短名稱            $savename = "/www/wwwroot/micuer.com/data/upload/".$savename; //Request::domain().            $python_file_name = "/www/wwwroot/micuer.com/pythoncode/WordToHtml.py";            //組裝命令            $cmd = "python {$python_file_name} ".$savename." {$shotrname}  2>error.txt 2>&1";            $res = exec($cmd,$array, $ret);            return json(["code"=>200,"msg"=>"成功","data"=>$savename,"cmd"=>$cmd,"array"=>$array]);        } catch (think\exception\ValidateException $e) {            return json(["code"=>40000,"msg"=>$e->getMessage()]);        }    }

          上傳界面如下:

          實現的功能就是利用PHP的exec函數,調用py腳本,將html代碼返回給前臺服務器。

          返回數據如下

          其實,再處理這個方案中,也遇到了很多問題,比如在命令行下只能成功,但是exec函數執行不成功等等。
          參考了資料:https://my.oschina.net/u/4427610/blog/3155816
          也就是

          exec("python python_test.py 2>error.txt 2>&1", $array, $ret);

          在bash中0,1,2三個數字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即標準輸入(一般是鍵盤),標準輸出(一般是顯示屏,準確的說是用戶終端控制臺),標準錯誤(出錯信息輸出)。
          也可以通過以下方式將標準錯誤重定向到標準輸出保存到$array中:
          打印之后,發現是沒有權限調用。于是就直接改為輸出了,也就是 py的print(html)函數。

          注意幾點:
          1:執行權限問題
          2:exec(“python python_test.py 2>error.txt 2>&1”, $array, $ret); 中 $array就接受到了 print(html)的值
          3:各個腳本盡量使用全路徑

          用PHP生成HTML文檔, 支持標簽嵌套縮進, 支持標簽自定義屬性

          起因

          這個東西確實也是心血來潮寫的, 本來打算是輸出HTML片段用的, 但后來就干脆寫成了一個可以輸出完整HTML的功能;

          我很滿意里邊的實現縮進的機制, 大家有用到的可以看看

          p.s. 現在都是真正的前后端分離了(vue, nodejs, webpack...), 這個東西喜歡就用, 不喜歡就算了~

          支持的標簽

          html, head, meta, title, body, input, select/option, form, table, div, 注釋, 以及 自定義標簽(成對出現的標簽), 還有一大堆屬性(在下邊有介紹)

          實現

          整體

          1.每個標簽都對應一個類, 比如 標簽<html>, 對應了一個叫html的類

          2.標簽中有用到的屬性, 我都放到了一個類中了, 并提供了方法去獲取賦了值的屬性

          嵌套縮進

          每個標簽我都設計了一個類, 比如 table 標簽, 就有一個叫table的類與之對應

          每個類里邊一般都有以下3個重要成員:

          1.本標簽的縮進值

          2.輸出本標簽最終字符串的方法, out()

          3.給本標簽添加子標簽的方發, append()

          其中append()接收的是子標簽的對象, 在最終調用$html->out()的時候, 每個子標簽對象里的out()方法會被依次調用, 縮進值也會從上層類傳遞到最下層類并累加;

          另外, 每個類都包含了屬性類(calss attribute ), 每個類的縮進值是從屬性類里繼承而來的, 所以如果修改了屬性類里的縮進量, 所有類的縮進量就跟著改變了

          你也可以給標簽類添加一個自己的縮進值來覆蓋統一的縮進值

          屬性

          我這里的方案是定義一個類(calss attribute ), 里邊有

          1.標簽可能擁有的屬性

          2.對應的setXxx方法

          3.組裝非空的屬性拼成字符串的方法

          4.為了不影響下次顯示, 會有專門的清空方法, 把之前賦值的屬性都清空

          這樣的話, 在定義標簽屬性的時候, 需要的就賦上值, 不需要的不賦值就不會在最終的HTML代碼中顯示出來

          源碼地址: 傳到碼云了,看其中的test.php文件,是介紹他的用法。

          以上就是用php生成HTML文件的類的詳細內容,更多請關注其它相關文章!

          更多技巧請《轉發 + 關注》哦!

          khtmltopdf是一個非常有用的應用程序,用于從html(網頁)創建pdf。本篇文章將介紹關于如何使用php腳本和Linux命令行工具創建網頁的pdf。



          步驟1:在Linux中安裝wkhtmltopdf

          從google code下載wkhtmltopdf并安裝到Linux系統。

          # cd /opt

          # wget https://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-i386.tar.bz2

          # tar xjf wkhtmltopdf-0.9.9-static-i386.tar.bz2

          # mv wkhtmltopdf-i386 /usr/bin/wkhtmltopdf

          # chown apache:apache /usr/bin/wkhtmltopdf

          # chmod +x /usr/bin/wkhtmltopdf

          步驟2:使用命令行創建PDF

          首先檢查wkhtmltopdf腳本,它在命令行中正常工作。下面的命令將創建http://google.com網頁的pdf。

          # /usr/bin/wkhtmltopdf http://google.com google.pdf

          步驟3:使用wkhtmltopdf創建pdf的php代碼

          使用下面的PHP代碼塊從HTML(網頁)生成PDF。此腳本需要為Apache啟用shell_exec函數。大多數共享主機不允許此函數。

          使用下面的代碼創建一個文件名getpdf.php,并將其放到網站文檔根目錄中。

          <?php

          $url = $_GET['url']; // Website URL to Create pdf

          $name = $_GET['pdf']; // Output pdf name

          $command = "/usr/bin/wkhtmltopdf ";

          $pdf_dir = "/var/www/html/pdfs/"; // Pdf files will be saved here

          $ex_cmd = "$command $url " . $pdf_dir . $name;

          $output = shell_exec($ex_cmd);

          ?>

          打開以下網址生成網站的pdf(html)。

          語法:http:

          //youdomain.com/getPdf.php?url = <website url>&pdf = <pdf name>

          示例:

          https : //tecadmin.net/getPdf.php?url = http : //google.com&pdf=google.pdf

          本篇文章到這里就已經全部結束了,更多其他精彩內容可以關注的Linux視頻教程欄目!

          以上就是使用Qtwebkit和PHP將HTML轉換為PDF的詳細內容,更多請關注其它相關文章!

          更多技巧請《轉發 + 關注》哦!


          主站蜘蛛池模板: 亚洲中文字幕无码一区二区三区 | 国产精品自在拍一区二区不卡| A国产一区二区免费入口| 国产内射999视频一区| 国产精品成人一区二区三区| 国模丽丽啪啪一区二区| 亚洲一区二区三区高清在线观看| 日韩AV在线不卡一区二区三区 | 国产suv精品一区二区6| 精品三级AV无码一区| 日韩电影一区二区三区| 乱人伦一区二区三区| 麻豆AV天堂一区二区香蕉| 动漫精品一区二区三区3d| 中文字幕日韩一区二区三区不卡| 午夜爽爽性刺激一区二区视频| 无码人妻精品一区二区三18禁| 国产在线一区二区杨幂| 性色AV一区二区三区天美传媒| 久久精品国产一区二区三区日韩| 国产无吗一区二区三区在线欢| 无码国产精品一区二区免费式直播 | 中文字幕在线观看一区| 亚洲一区影音先锋色资源| 亚洲色婷婷一区二区三区| 任你躁国语自产一区在| AV天堂午夜精品一区二区三区 | 怡红院AV一区二区三区| 国产福利一区二区精品秒拍| 精品人妻一区二区三区四区在线 | 日韩av片无码一区二区不卡电影| 91精品福利一区二区| 国产av一区二区精品久久凹凸 | 精品乱人伦一区二区| 亚洲AV美女一区二区三区| 一区二区三区在线观看| 亚洲国产一区二区三区| 国产精品视频分类一区| 一区二区三区AV高清免费波多| 少妇激情一区二区三区视频| 亚洲另类无码一区二区三区|