Zhong__Linux服务器word转PDF方案
時間:2018.10
環境:CentOS7
目的:
說明:
作者:Zhong QQ交流群:121160124 歡迎加入!
有時我們可能在項目開發中遇到這樣的問題? 需要把word文檔轉換為PDF文件? 如果是在windows平臺? 是可以完美轉換的? 如果是個人或者只是臨時需要轉換文件網上也有很多的軟件或者第三方接口可供使用? 但在Linux系統開發環境下? 卻會出現不能完美轉換的問題? 這是因為目前大多數所使用的技術都是依賴系統office辦公軟件的? windows下的office辦公軟件是微軟公司的? 自然在windows系統中轉換自如? 而linux系統中的辦公軟件做的不是很完美? 使用于linux系統? 但對windows中的word支持不是很好? 轉換也會存在一些不足? 這是不同的系統對office的兼容問題? 在某個角度可以說是和代碼無關的? 無論是java還是python皆是如此? 未來可能有好的解決方案? 目前也可以用其它比較復雜的技術實現
既然windows可以完美支持word轉PDF? 那么我們可以在一臺windows服務器上寫一個word轉PDF的接口? 讓linux系統中程序調用? 這樣就可以實現了? 這種方法是可以實現的? 筆者已經做過這種需求的項目? 感覺不足的是需要一臺運行windows的服務器來支持? 但確實可以做到比較完美的word轉PDF
安裝依賴包:
yum install unoconv -y此時執行轉換是可以的 但是默認不支持中文 也就是中文內容不能轉換
unoconv -f pdf *.docx # or unoconv -f pdf *.doc安裝Linux版本office套件
yum install libreoffice.x86_64 -y復制windows系統字體文件到Linux系統并刷新 windows系統字體文件一般在C:\Windows\Fonts\文件夾中 CentOS系統字體文件一般在/usr/share/fonts/目錄下 在/usr/share/fonts/目錄下新建windows目錄 把windows系統字體文件上傳到此目錄
上傳完成后即可使用 下面的更新字體緩存的操作做不做都行
建立字體緩存
fc-cache -fv查看已安裝字體
fc-list |grep windows上面的unoconv命令也可以soffice命令替代
soffice --headless --invisible --convert-to pdf *.docx # or soffice --headless --invisible --convert-to pdf *.doc可參考下面整理的方案:
安裝libreoffice套件和unoconv軟件
1.在線安裝
查看yum源的安裝包
yum search libreoffice
查看yum源上安轉包基本信息
yum info libreoffice
安裝Linux版本office套件
yum install libreoffice.x86_64
安裝unoconv依賴包
yum install unoconv -y
2.離線安裝
如有需要可卸載已存在的office
yum remove openoffice* libreoffice*
下載LibreOffice 以5.3.6.1版本為例 下載網站: 主頁 | LibreOffice 簡體中文官方網站 - 自由免費的辦公套件 下載完成后進行解壓安裝
tar -zxvf LibreOffice_5.3.6.1_Linux_x86-64_rpm.tar.gz cd LibreOffice_5.3.6.1_Linux_x86-64_rpm/RPMS/ sudo rpm -Uvh *.rpm
安裝好office之后安裝unoconv git下載 參考網站: https://docs.moodle.org/31/en/Installing_unoconv#CentOS_.2F_RedHat
git clone https://github.com/dagwieers/unoconv.git
拷貝unoconv執行文件到/usr/bin目錄
cp unoconv/unoconv /usr/bin
測試
unoconv -f pdf *.doc
python測試文件test.py
vim test.py # 寫入以下的內容import osos.system("unoconv -f pdf *.doc")執行
python test.pyNote
需要了解的是目前無論是windows平臺還是Linux平臺word文檔轉PDF文件 大多底層都是依賴于系統本身的office辦公套件 由于平臺之間的兼容性存在一些問題 所以有些情況下轉換的結果不是很完美
而且對于目前window系統較新的word文檔軟件創建和保存word文檔時是以docx后綴結尾 而Linux系統office辦公軟件對此類文件兼容性并不友好,例如在windows平臺顯示正常的word文檔 如果內容部分背景色顯示為灰色 那么在Linux中查看則是黑色背景 不調試則看不清文字 而PDF文檔是以word文檔為基礎 docx存在問題 則轉換的PDF文檔也理所當然的存在問題 這就導致windows下的docx文檔在Linux系統中轉換為PDF文檔出現樣式不一致問題 而較早的doc后綴結尾的word文檔由于Linux系統office辦公套件兼容性較好的原因一般不會出現此類問題? 所以? 建議轉換為PDF文件的word源文檔類型為doc類型
????????當然 隨著技術的發展 會出現一些比較優秀的工具可能會彌補上述不足 最近有需求要對word文檔進行電子簽名 發現一款名為aspose-words的工具可以實現! 而且支持多種主流開發語言 不過最近沒有word轉pdf的需求 也就沒測試可否完美轉換 有需求的可以嘗試一下!
????????如果大家發現有什么好的工具也歡迎分享!
QQ交流群:121160124
關注微信公眾號:
總結
以上是生活随笔為你收集整理的Zhong__Linux服务器word转PDF方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS--地图找房(类似链家、安居客等地
- 下一篇: Linux Ubuntu 命令行文件系统