zoukankan      html  css  js  c++  java
  • 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="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='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)
  • 相关阅读:
    2015第11周日
    2015第11周六
    素数推断算法(高效率)
    vc中关于 directx的配置,和dxsdk_extras(directshow)
    几种开源分词工具的比較
    javascript实现函数的默认參数值方法
    MyReport报表引擎2.0.0.0新功能
    怎样在小方框上打对号 小方框内打对勾 word 方框打对勾
    Bombing HDU, 4022(QQ糖的消法)
    fullcalendar日历控件知识点集合
  • 原文地址:https://www.cnblogs.com/architectforest/p/12706426.html
Copyright © 2011-2022 走看看