centos8平台使用wkhtmltopdf實現html網頁轉pdf


一,wkhtmltopdf的用途

wkhtmltopdf可以直接把任何一個可以在瀏覽器中瀏覽的網頁直接轉換成一個pdf

 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

 說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,下載和安裝wkhtmltopdf

1,官網地址:

https://wkhtmltopdf.org/downloads.html

 

2,下載:

[root@blog source]# wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox-0.12.5-1.centos8.x86_64.rpm

 

3,安裝

[root@blog source]# rpm -ivh wkhtmltox-0.12.5-1.centos8.x86_64.rpm
error: Failed dependencies:
        xorg-x11-fonts-75dpi is needed by wkhtmltox-1:0.12.5-1.centos8.x86_64
        xorg-x11-fonts-Type1 is needed by wkhtmltox-1:0.12.5-1.centos8.x86_64

 

報錯了,先把有依賴的兩個包安裝好:

[root@blog source]# dnf install xorg-x11-fonts-75dpi
[root@blog source]# dnf install xorg-x11-fonts-Type1

 

再次安裝就OK了

[root@blog source]# rpm -ivh wkhtmltox-0.12.5-1.centos8.x86_64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:wkhtmltox-1:0.12.5-1.centos8     ################################# [100%]

 

三,查看版本和幫助

1,查看版本

[root@blog source]# /usr/local/bin/wkhtmltopdf --version
wkhtmltopdf 0.12.5 (with patched qt) 

 

2,查看幫助

[root@blog source]# /usr/local/bin/wkhtmltopdf --help

 

3,查看手冊

[root@blog source]# man wkhtmltopdf

 

四,wkhtmltopdf的用法例子:

1,轉本地頁面

[root@blog ~]# /usr/local/bin/wkhtmltopdf /home/sysop/work/jianli.html /home/webop/work/jianli.pdf
Loading pages (1/6)
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done  

 

2,轉線上的頁面:

[root@blog ~]# /usr/local/bin/wkhtmltopdf http://www.baidu.com /home/webop/work/baidu.pdf

 

五,wkhtmltopdf使用中遇到的問題

1,問題:部分文字不能正常顯示?

解決:

把windows下字體保存到/usr/share/fonts/ 目錄下

[root@blog source]# cp /home/webop/work/simsun.ttc /usr/share/fonts/ 

 

2,問題:文字的字體顯示不正常,有的是黑體,有的是宋體

解決:

在head中指定字體的路徑,

@font-face{font-family: "宋體";src:url("/usr/share/fonts/simsun/simsun.ttc");}

 

在頁面上的元素中指定相應的字體,例:

<body style='font-family:"宋體";'>

然后再轉換即可

 

六,一個完整的例子:

html代碼:

<html>
<head>
<meta charset="utf-8" />
  <meta name="renderer" content="webkit">
  <title>測試pdf頁面生成</title>
<style>
@font-face{font-family: "宋體";src:url("/usr/share/fonts/simsun/simsun.ttc");}
@font-face{font-family: "黑體";src:url("/usr/share/fonts/simhei/simhei.ttf");}
</style>
</head>
<body style='font-family:"宋體";'>
<table style="width:1024px;margin: auto;background: #eeeeee;">
<tr><td>姓名:</td><td>老劉</td></tr>
<tr><td>照片:</td><td><img src="https://imgs-qn.qiniuyun.com/ware/sowhatimg/ware/orig/2/35/35158.jpg" /></td></tr>
<tr><td>描述:</td><td><div style='width:800px;word-wrap:break-word;line-height:40px;font-family:"黑體";'>
Palm Web OS是一款基於Linux內核的嵌入式操作系統。該平台於2009年CES大會上正式發布,第一款搭載Web OS的手機Plam Pre於同年6月發布。
當年iPhone 3GS的“勁敵”,Palm pre手機。滑蓋Qwerty全鍵盤,支持多點觸控的3.1英寸TFT屏幕,
采用了600Mhz的ARM Cortex A8 CPU,“軌跡球”功能類似iPhone的Home鍵。
</div> </td></tr> </table> </body> </html>

pdf效果圖:

可以看到pdf中的字體是按照我們指定的字體進行了渲染

 

七,查看centos的版本

[root@blog ~]# cat /etc/redhat-release
CentOS Linux release 8.0.1905 (Core)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM