:::

PHP線上轉檔服務搭配pdf2htmlEX / PHP File Converter with pdf2htmlEX

2014-08-11_202622

我開發了一個可以用PHP線上轉檔服務 (PHP File Converter)。此服務可以讓使用者上傳檔案,然後等待系統進行轉檔,最後輸出轉檔完的結果。這個程式是為了搭配pdf2htmlEX一起運作,以省略需要用指令來進行轉檔的過程。以下介紹這個服務的由來與下載說明。

I developed an online PHP File Converter to let user online convert their files to another format. PHP File Converter use system command line to  use convert tool, for example, pdf2htmlEX. Following is introduction of PHP File Converter.


簡介 / Introduction

2014-08-11_201945

一開始是因為我們需要一個PDF轉成HTML的方案。這些方案中王璐的pdf2htmlEX專案轉換成效非常好。pdf2htmlEX可以把一份PDF檔案轉成一個HTML檔案,而這個HTML檔案可以直接開啟,裡面已經包含了原本PDF的排版與圖片。上圖是轉換後的成果,非常好用。

但是pdf2htmlEX的操作是要用Linux的指令列進行,這對於許多不熟悉Linux的人來說有點麻煩。這讓我想要發展一個線上轉檔網址,可以讓使用者上傳檔案,然後利用作業系統的命令列進行轉檔,轉檔完成之後再提供使用者下載的服務。最後就完成這個PHP File Converter

特色 / Features

68747470733a2f2f6c68352e676f6f676c6575736572636f6e74656e742e636f6d2f2d424b4e2d31796b516741492f556d643863637538456d492f41414141414141424d4c592f62586138485459516769492f73302f323031332d31302d3

PHP File Converter特色在於讓使用者直接在瀏覽器中上傳檔案到伺服器,然後PHP File Converter會自動執行系統轉檔指令。轉檔完成之後,使用者則會被引導到下載網址,然後就可以下載已經轉檔完成的檔案。

具體來說,特色如下:

  • 以伺服器作業系統的命令列進行轉檔。只要伺服器可以使用命令列CLI (command line interface)進行轉檔,就可以用PHP File Converter來轉檔
  • 伺服器端可設定上傳檔案允許大小、格式,避免惡意檔案上傳
  • 伺服器端可設定轉檔輸入的參數
  • 伺服器端可設定保留轉檔數量,避免使用者上傳過多檔案而導致伺服器空間不足
  • 檔案的上傳、轉換與下載會在系統留下記錄,包括檔案名稱、使用者IP與時間
  • 系統是基於CodeIgniter 2.1.4,採MVC架構開發
  • 以SQLite作為資料庫,不需要額外搭配其他資料庫設定

目前PHP File Converter跟pdf2htmlEX轉檔工具綁定在一起,特別設置了pdf2htmlEX會使用的Zoom等參數。

至於pdf2htmlEX則是王璐開發的專案,詳細請看他的pdf2htmlEX專案

系統需求與設定 / System Requirement & Configuration

PHP File Converter的專案網站與下載位址如下:

PHP File Converter是以PHP架設,需要搭配SQLite資料庫才能運作。建議運作環境是:

  • PHP 5.5.3
  • SQLite 3
  • 硬碟空間:建議100MB以上
  • 測試環境XAMPP 1.8.1

轉檔程式主要的設定檔位於 [php-file-converter]/application/config/converter.php 。參考檔案內的說明來進行設定。

由於轉檔需要耗費大量伺服器資源,故在此不提供展示用的界面。


結語:未來發展方向 / Conclusion: Future Works

雖然目前PHP File Converter設定是搭配pdf2htmlEX,但其實它有很多可能。

發展PHP File Converter的原因有很多,另一個原因是因為很多服務都需要搭配轉檔工具才能使用,例如DSpace多媒體轉檔器 (Media Filter)就需要轉圖片、轉文件檔案(txt或doc)、轉聲音、轉影片,很多很多。雖然大部分轉檔工具都可以在Linux中安裝,但是每一臺都安裝自己的轉檔工具,顯然是無法善用資源的一件事情。

於是我的構想是:一臺伺服器專門負責一種檔案的轉檔,其他伺服器則是把檔案交給它轉檔。為了做到這件事情,PHP File Converter甚至有規劃API使用。

不過可惜的是,目前為止還沒有朝向這個方向進行的實際規劃。目前大家主要是手動上傳、手動下載,再把轉檔好的檔案擺到提供使用者取用的位置,伺服器之間沒有這麼自動。

最後,請讓我用這一篇文章來感謝pdf2htmlEX的作者王璐。我在安裝跟使用pdf2htmlEX時遭遇了很多問題,感謝他在信中熱情地為我解惑,而且還快速地修改了一些錯誤,真是令人尊敬的開發者。謝謝您。

總共3 則留言 ( 我要發問 , 隱藏留言 顯示留言 )