一,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. docker启动容器报错 Unknown runtime specified nvidia.

    启动docker容器时,报错 问题复现 当我启动一个容器时,运行以下命令: docker run --runtime=nvidia .... 后面一部分命令没写出来,此时报错的信息如下: docker ...

  2. MYSQL中的where ‘1=1‘ 探讨

    在学习MySQL时候,关于MySQL注入的例子 首先针对以下代码,实现的是关于sql注入时,一个普通登录所产生的的问题 package com.java.lesson02; import com.ja ...

  3. DevOps-实践心得

    基于最近几年从事与DevOps的相关实践,对这篇文章的观点深有体会,所以记录在这里.加粗部分是我比较深有体会的,但是对于最后作者对于"运维"有些悲观,我有点不敢苟同,反而对于运维的 ...

  4. [极客大挑战 2019]Havefun wp

    很少见的很简单的一道题 查看源代码 获得一段被注释的代码 直接?cat=dog即可得flag

  5. 乔悟空-CTF-i春秋-Web-SQLi

    2020.09.05 今天注定是高产的一天,这题真是坑,不看wp真的不会做,现在回头来复习一遍. 做题 题目 题目地址 做题 这题坑人的地方就在于重定向了两次,并且重要信息在第一次里藏着,第二次还给了 ...

  6. awk使用说明(复制别人的)

    来源:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2858470.html 简介 awk是一个强大的文本分析工具,相对于grep的查找,se ...

  7. 万字详解 TDengine 2.0 数据复制模块设计

    ​导读:TDengine分布式集群功能已经开源,集群功能中最重要的一个模块是数据复制(replication),现将该模块的设计分享出来,供大家参考.欢迎大家对着设计文档和GitHub上的源代码一起看 ...

  8. Java基础之LinkedHashMap原理分析

    知识准备HashMap 我们平时用LinkedHashMap的时候,都会写下面这段 LinkedHashMap<String, Object> map = new LinkedHashMa ...

  9. 如何成为一位优秀的ScrumMaster

    嗨,大家好,我是叶子 背景介绍 目标:为了能更好的适应快速变化的需求和不确定的未来. 部门包含岗位:部门负责人.项目经理.产品经理.开发团队(开发人员.测试人员) 那么这种情况下,我们想转型Scrum ...

  10. java对象相等

    https://www.dutycode.com/post-140.html 简单来首,Object方法里的equals也是直接判断两个引用是否指向同一个地址,即引用同一个对象 public bool ...