一,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)

centos8平台使用wkhtmltopdf实现html网页转pdf的更多相关文章

  1. 微信公众平台开放JS-SDK(微信内网页开发工具包)

    微信公众平台开放JS-SDK(微信内网页开发工具包),这次开放接口是质的飞跃,是对开发者和广大用户一个利好的消息.未来的公众号图文消息会更丰富多彩,准备脑洞大开吧!(第三方平台正式支持接入微信公众平台 ...

  2. python 爬虫,网页转PDF:OSError: No wkhtmltopdf executable found

    解决办法: 代码中设置参数: path_wk = r‘D:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe‘ #wkhtmltopdf安装位置 config ...

  3. Python|网页转PDF,PDF转图片爬取校园课表~

    import pdfkit import requests from bs4 import BeautifulSoup from PIL import Image from pdf2image imp ...

  4. pypdf2:下载Americanlife网页生成pdf合并pdf并添加书签

    初步熟悉 安装 pip install pypdf2 合并并添加书签 #!/usr/bin/env python3.5 # -*- coding: utf-8 -*- # @Time : 2019/1 ...

  5. 使用Pechkin将HTML网页转换为PDF

    Pechkin开源组件使用wkhtmlbox,可以解析CSS样式,将网页转换为PDF文件, 支持URL,或者HTML字符串 1, 从NuGet程序管理器中获得Pechkin  GlobalConfig ...

  6. 实践指南-网页生成PDF

    一.背景 开发工作中,需要实现网页生成 PDF 的功能,生成的 PDF 需上传至服务端,将 PDF 地址作为参数请求外部接口,这个转换过程及转换后的 PDF 不需要在前端展示给用户. 二.技术选型 该 ...

  7. wkhtmltopdf 将网页转换为PDF和图片

    wkhtmltopdf 是一个shell工具,它使用了WebKit渲染引擎和Qt,将网页html转换为pdf的强大工具,转换后的pdf也可以通过pdf工具进行复制.备注.修改 官网下载地址:http: ...

  8. Java微信公众平台开发之OAuth2.0网页授权

    根据官方文档点击查看在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的"开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息"的配置选项中,修 ...

  9. Java微信公众平台开发(十六)--微信网页授权(OAuth2.0授权)获取用户基本信息

    转自:http://www.cuiyongzhi.com/post/78.html 好长时间没有写文章了,主要是最近的工作和生活上的事情比较多而且繁琐,其实到现在我依然还是感觉有些迷茫,最后还是决定静 ...

随机推荐

  1. Linux设备驱动模型简述(源码剖析)

    1. Linux设备驱动模型和sysfs文件系统 Linux内核在2.6版本中引入设备驱动模型,简化了驱动程序的编写.Linux设备驱动模型包含设备(device).总线(bus).类(class)和 ...

  2. 血的教训!千万别在生产使用这些 redis 指令

    哎,最近小黑哥又双叒叕犯事了. 事情是这样的,前一段时间小黑哥公司生产交易偶发报错,一番排查下来最终原因是因为 Redis 命令执行超时. 可是令人不解的是,生产交易仅仅使用 Redis set 这个 ...

  3. 认识一下python

    python 目录 python 1.python创始人 2.python的设计目标 3.为什么使用python 4.python的特点 5.python的优缺点 1.python创始人 1.1989 ...

  4. JVM七大垃圾回收器上篇Serial、ParNeW、Parallel Scavenge、 Serial Old、 Parallel Old、 CMS、 G1

    GC逻辑分类 垃圾收集器没有在规范中进行过多的规定,可以由不同的厂商.不同版本的JVM来实现. 由于JDK的版本处于高速迭代过程中,因此Java发展至今已经衍生了众多的GC版本. 从不同角度分析垃圾收 ...

  5. C++ (C#)实现获取NX PART预览图

    VS环境下 C++版本: 1 int GetPreviewImage(const TCHAR* prtFile, const TCHAR* imageFile) 2 { 3 IStorage* pSt ...

  6. awk的一些认识

    awk awk '{pattern + action}' {filenames} 当我们所指定的规则脚本过长的时候,我们可以使用-f的选项加上我们的脚本文件.再复杂点我们可以直接调用shell脚本,就 ...

  7. Ubuntu中发生git Connection refused

    今天在提交代码的时候: ssh: connect to host github.com port 22: Connection refused fatal: 无法读取远程仓库. 请确认您有正确的访问权 ...

  8. Pycharm默认输入状态是insert状态,选中文字无法直接输入替换或删除

    最近在学习Python,使用pycharm的时候,我的光标处于加粗状态,也就是编程软件经常出现的insert插入编辑模式,我就点击了一下insert按键,退出了这个模式,但是我每次打开都是会处于这种模 ...

  9. myisamchk是用来做什么的?MyISAM Static和MyISAM Dynamic有什么区别?

    myisamchk是用来做什么的? 它用来压缩MyISAM[歌1] 表,这减少了磁盘或内存使用. MyISAM Static和MyISAM Dynamic有什么区别? 在MyISAM Static上的 ...

  10. mysql-5-aggregation

    #2.分组函数 /* 分组函数/聚合函数:传入一组值,经过统计处理,得到一个输出值 sum, avg, max, min, count */ USE myemployees; #简单使用 SELECT ...