国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

初識wkhtmltopdf

wushuiyong / 3096人閱讀

摘要:背景最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到。本著最好不要額外安裝軟件的原則,搜索過后分別嘗試了等等。但是實現效果都與預期差距較大。它們是開源命令行工具,使用渲染引擎將呈現為和各種圖像格式。它們不需要顯示或顯示服務。

背景

最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到PDF。表格使用的是普通的table,圖表引用了https://www.chartjs.org/ 遇到的問題詳見wkhtmltopdf chartjs

思路

在網上查了下前后端都可以將html生成pdf,考慮到實現效果以及效率,最后決定將轉化工作在服務端使用PHP完成。本著最好不要額外安裝軟件的原則,搜索過后分別嘗試了 TCPDF MPDF FPDF html2pdf 等等。但是實現效果都與預期差距較大。最后不得不嘗試需要額外安裝的wkhtmltopdf。

wkhtmltopdf簡介

引用 官網 介紹:wkhtmltopdf是wkhtmltox中的一個工具,另一個是wkhtmltoimage。它們是開源(LGPLv3)命令行工具,使用Qt WebKit渲染引擎將HTML呈現為PDF和各種圖像格式。它們不需要顯示或顯示服務。值得一提的是谷歌瀏覽器chrome也使用的是Qt WebKit渲染引擎。

wkhtmltopdf安裝

安裝是在docker中進行的,使用開源項目docker-lnmp。但該php使用的是alpine版本,遂把鏡像改回默認的debian版本,后由于客戶使用的是centos,又多帶帶下載了centos7的鏡像。

debian安裝
# wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox_0.12.5-1.jessie_amd64.deb
# dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb

這里安裝會提示缺少依賴信息,其他信息可以直接通過apt-get install進行安裝,但是這兩個需要注意下 :

dpkg: dependency problems prevent configuration of wkhtmltox:
 wkhtmltox depends on libpng12-0; however:
  Package libpng12-0 is not installed.
 wkhtmltox depends on libssl1.0.0; however:
  Package libssl1.0.0 is not installed.

這兩個包直接去倉庫中搜索安裝即可,然后再次執行安裝命令,就會成功安裝了

# dpkg -i wkhtmltox_0.12.5-1.jessie_amd64.deb
# wkhtmltopdf -V
# wkhtmltopdf --enable-forms  https://www.baidu.com baidu.pdf
centos安裝
# wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
# rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm

正常系統安裝并update后會提示缺少依賴信息:

error: Failed dependencies:
    fontconfig is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    freetype is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    libpng is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    libjpeg is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    libX11 is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    libXext is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    libXrender is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    xorg-x11-fonts-Type1 is needed by wkhtmltox-1:0.12.2.1-1.x86_64
    xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.2.1-1.x86_64

這里直接按照提示的安裝包就可以了

# yum install fontconfig freetype libpng libjpeg libX11 libXext libXrender xorg-x11-fonts-Type1 xorg-x11-fonts-75dpi

然后再次執行安裝命令,就會成功安裝了

# rpm -ivh wkhtmltox-0.12.5-1.centos7.x86_64.rpm
# wkhtmltopdf -V
# wkhtmltopdf --enable-forms https://www.baidu.com baidu.pdf
wkhtmltopdf問題

這里需要注意的是部分系統可能會拋出異常
QXcbConnection: Could not connect to display Aborted (core dumped)
這里需要安裝xvfb然后使用xvfb運行

# xvfb-run wkhtmltopdf --enable-forms https://www.baidu.com baidu.pdf

導出的pdf中文會有亂碼,可以將windows系統c盤system32目錄下的Fonts里面的字體拷貝到linux的/usr/share/fonts下重新運行就可以了

wkhtmltopdf是跨平臺的軟件,和后端使用那種語言是沒有關系的。
PHP有直接可以用的框架https://github.com/KnpLabs/snappy和laravel框架https://github.com/barryvdh/laravel-snappy
當然直接使用PHP執行shell也及其簡單,但要注意防范webshell。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/103214.html

相關文章

  • 初識wkhtmltopdf

    摘要:背景最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到。本著最好不要額外安裝軟件的原則,搜索過后分別嘗試了等等。但是實現效果都與預期差距較大。它們是開源命令行工具,使用渲染引擎將呈現為和各種圖像格式。它們不需要顯示或顯示服務。 背景 最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到PDF。表格使用的是普通的table,圖表引用了https://www.char...

    Towers 評論0 收藏0
  • 初識wkhtmltopdf

    摘要:背景最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到。本著最好不要額外安裝軟件的原則,搜索過后分別嘗試了等等。但是實現效果都與預期差距較大。它們是開源命令行工具,使用渲染引擎將呈現為和各種圖像格式。它們不需要顯示或顯示服務。 背景 最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到PDF。表格使用的是普通的table,圖表引用了https://www.char...

    April 評論0 收藏0
  • 初識wkhtmltopdf

    摘要:背景最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到。本著最好不要額外安裝軟件的原則,搜索過后分別嘗試了等等。但是實現效果都與預期差距較大。它們是開源命令行工具,使用渲染引擎將呈現為和各種圖像格式。它們不需要顯示或顯示服務。 背景 最近接到一個客戶需求,要求將學生的考試結果分析表格和圖表導出到PDF。表格使用的是普通的table,圖表引用了https://www.char...

    wfc_666 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<