文章目录

  • 一、html转换成pdf工具-wkhtmltopdf
    • 1. 什么是wkhtmltopdf
    • 2. 如何使用它?
    • 3. 常见问题
      • error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or
      • version `GLIBC_2.14' not found
    • 下载安装字体文件(缺少字体会导致生成的PDF文件里的中文都是方块)
  • 二、Python生成PDF(pdfkit库)
    • 1. 网页生成 pdf【pdfkit.from_url()函数】
    • 2. html 文件生成 pdf【pdfkit.from_file()函数】
    • 3. 字符串生成 pdf【pdfkit.from_string()函数】
  • 三、参考

一、html转换成pdf工具-wkhtmltopdf

官网:https://wkhtmltopdf.org/

1. 什么是wkhtmltopdf

wkhtmltopdf and wkhtmltoimage are open source (LGPLv3) command line tools to render HTML into PDF and various image formats using the Qt WebKit rendering engine. These run entirely “headless” and do not require a display or display service.

wkhtmltopdf 和 wkhtmltoimage 是开源 (LGPLv3) 命令行工具,可使用 Qt WebKit 渲染引擎将 HTML 渲染为 PDF 和各种图像格式。 这些完全“headless”运行,不需要界面或界面服务。

如果您喜欢,它还是一个 C 库。

wkhtmltopdf是 “命令行工具” ,支持多个平台,可在win,linux,os x 等系统下运行。

2. 如何使用它?

  1. 下载预编译的二进制文件或从源代码构建

  2. 创建要转换为 PDF(或图像)的 HTML 文档

  3. 通过该工具运行您的 HTML 文档。

3. 常见问题

error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or

问题描述:
执行 wkhtmltopdf -V 报错 error while loading shared libraries: libjpeg.so.62: cannot open shared object file: No such file or directory

解决方法:

apt-get install libjpeg62-dev

version `GLIBC_2.14’ not found

解决’GLIBC_2.14’ not found问题时遇到的坑
参考URL: https://blog.csdn.net/clirus/article/details/62425498

最近用到c++11需要升级glibc库。

网上有很多解决’GLIBC_2.14’ not found问题的帖子。

无非就是如下的一些操作命令:

  1. glibc下载
    从http://www.gnu.org/software/libc/ 下载源代码。我下载的版本是2.14,链接地址是http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz。
  2. 安装
    具体步骤如下:
    [root@localhost ~]# tar zxvf glibc-2.14.tar.gz -C /home/software/
    [root@localhost ~]# cd /home/software/glibc-2.14
    [root@localhost glibc-2.14]# mkdir /opt/build
    [root@localhost glibc-2.14]# cd build
    [root@localhost build]# …/configure --prefix=/opt/glibc-2.14
    [root@localhost build]# make -j4
    [root@localhost build]# make install
    如果没有碰到坑,那么恭喜你已经完成了安装,后续也就是库环境设置了。

下面先说一下遇到的坑:

1、在make过程中出现如下错误:

/usr/bin/install: include/limits.h' and/opt/glibc-2.14/include/limits.h’ are the same file

在经过google后,不太理解相关帖子的含义,后来自行修炼后,明白了。

原因就是楼主解压的glic-2.14.tar.gz源码和编译时定义的目录…/configure --prefix=/home/software/glibc-2.14放到了一起。

所以解决方法就是:
tar zxvf glibc-2.14.tar.gz -C /home/software/
…/configure --prefix=/opt/glibc-2.14
只要将编译定义目录和源码目录区分开就ok了。

2、在make install过程中出现如下错误:

Can’t open configuration file /opt/glibc-2.14/etc/ld.so.conf: No such file or directory

就是缺少了必要的编译文件ld.so.conf。通过find命令找到对应的文件位置。

[root@localhost build]# find / -name “ld.so.conf”
/etc/ld.so.conf

然后我们执行命令把此文件拷贝到对应的文件目录下去,然后继续编译。

[root@localhost build]# cp /etc/ld.so.conf /opt/glibc-2.14/etc/
[root@localhost build]# make install
Congratulations! 编译成功!

最后就是设置环境变量,因为glibc库使用广泛,为了避免污染当前系统环境,在使用时候定义一下环境变量。

执行命令

[root@localhost ~]# export LD_LIBRARY_PATH=/opt/glibc-2.14/lib:$LD_LIBRARY_PATH
将库的位置临时定位在/opt/glibc-2.14/lib位置。

此时再执行相关程序即可顺利运行。

下载安装字体文件(缺少字体会导致生成的PDF文件里的中文都是方块)

①yum install -y fontconfig mkfontscale 或者
apt-get -y install fontconfig xfonts-utils

② 下载字体文件(TTF文件)放入/usr/share/fonts

③ 执行三个命令

mkfontscale
mkfontdir
fc-cache

二、Python生成PDF(pdfkit库)

  1. 使用pip安装pdfkit库
pip3 install pdfkit
  1. 安装wkhtmltopdf文件

注:pdfkit是基于wkhtmltopdf的python封装,所以需要安装wkhtmltopdf。wkhtmltopdf是轻量级软件,非常很容易安装。
下载地址: https://wkhtmltopdf.org/downloads.html

  1. 使用pdfkit库生成pdf文件
    pdfkit可以将网页、html文件、字符串生成pdf文件!

1. 网页生成 pdf【pdfkit.from_url()函数】

# 导入库
import pdfkit'''将网页生成pdf文件'''
def url_to_pdf(url, to_file):# 将wkhtmltopdf.exe程序绝对路径传入config对象path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)# 生成pdf文件,to_file为文件路径pdfkit.from_url(url, to_file, configuration=config)print('完成')# 这里传入我知乎专栏文章url,转换为pdf
url_to_pdf(r'https://zhuanlan.zhihu.com/p/69869004', 'out_1.pdf')

2. html 文件生成 pdf【pdfkit.from_file()函数】

# 导入库
import pdfkit'''将html文件生成pdf文件'''
def html_to_pdf(html, to_file):# 将wkhtmltopdf.exe程序绝对路径传入config对象path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)# 生成pdf文件,to_file为文件路径pdfkit.from_file(html, to_file, configuration=config)print('完成')html_to_pdf('sample.html','out_2.pdf')

3. 字符串生成 pdf【pdfkit.from_string()函数】


import pdfkitdef str_to_pdf(string, to_file):# 将wkhtmltopdf.exe程序绝对路径传入config对象path_wkthmltopdf = r'D:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)# 生成pdf文件,to_file为文件路径pdfkit.from_string(string, to_file, configuration=config)print('完成')if __name__ == '__main__':str_to_pdf('This is test!', 'out_str_to_pdf.pdf')

三、参考

Python生成PDF(pdfkit库)
参考URL: https://www.jianshu.com/p/489c3aff61bd/

html转换成pdf工具-wkhtmltopdf、Python生成PDF(pdfkit库)相关推荐

  1. html转为pdf工具,wkhtmltopdf html转pdf工具的使用

    wktmltopdf 工具是使用Webkit引擎来将HTML网页转换为PDF文件.其可以将一个URL对应的网页转换为HTML,也可以将存在本地的一个html 文件转换为 pdf 文件.其在应用中有两个 ...

  2. python数据生成pdf,Python生成pdf文件的方法

    摘要:这篇Python开发技术栏目下的"Python生成pdf文件的方法",介绍的技术点是"python生成pdf文件.python生成pdf.生成pdf文件.Pytho ...

  3. python合并pdf 加书签_Python生成pdf目录书签的实例方法

    有时候我们用的一些pdf资料是没有目录的,这样找寻我们想到的东西比较麻烦.本篇文章就为大家带来python来生成pdf目录书签的方法. 首先,我们需要下载一个软件FreePic2Pdf,利用它我们可以 ...

  4. adobe 发布 flash 转换成 html5 工具 代号wallaby(沙袋鼠)-as3-javaeye技术网站

    adobe 发布 flash 转换成 html5 工具 代号wallaby(沙袋鼠)-as3-javaeye技术网站 2011年03月01日 Adobe 今日 发布了Flash 到 HTML5的一键转 ...

  5. 使用pypdf2把原始pdf转换成kindle看着舒适的pdf

    文章目录 裁剪pdf 使用脚本拆分页面并转成kindle可见的大小 压缩pdf (可选) 拆分pdf 由于买了个kindle,所以想要最大效率地利用它.而在kindle上看pdf是很难受的,因为kin ...

  6. caj转换成word工具怎么使用?

    我们知道caj文件的文件不能复制和编辑的,所以我们会转换成Word或者text,如果我们电脑没有安装工具,那我们可以安装工具在转换啊,caj转换成Word工具怎么使用?接下来小编我就来帮你解决. 步骤 ...

  7. Excel转换成Json工具

    Excel转换成Json工具: 可执行版本下载:https://github.com/neil3d/excel2json/releases 完整项目源代码下载:https://github.com/n ...

  8. 如何使用录音文件转换成文字工具快速完成转换

    如何使用录音文件转换成文字工具快速完成转换 长时间的音频文件转换成文字相信让很多人头疼过.一句一句的听译浪费时间十分麻烦还很容易跟不上语速需要返回重新听,那么这里就来和大家讲讲如何只需要几分钟就可以将 ...

  9. python批量将pdf转成word_如何用Python把pdf转换成word

    很多时候,我们需要把文件的形式来回转换.那么学了编程的小伙伴,我们该如何用Python把pdf转换成word呢? 一.下载所需要的库 1.pdfminer 安装库命令pip install pdfmi ...

最新文章

  1. 涨点明显 | 全面刷新COCO检测和分割Top-1(附论文下载)
  2. tcpdump抓包命令_tcpdump实战
  3. unable to read askpass response from '/usr/libexec/openssh/gnome-ssh-askpass
  4. 1136 A Delayed Palindrome (20 分)
  5. linux统计所有进程总共占用多少内存?
  6. 剑指offer面试题41. 数据流中的中位数(二分查找)
  7. 技术专题之-技术概述的目录
  8. 无锁并发和无等待并发的对比分析
  9. 计算机数据处理规模大小分为,计算机组成原理题集样稿.doc
  10. 2019当今互联网赚钱的六大方式,赠送给迷茫的网赚新手
  11. win10安装VS2008失败解决方案
  12. 不能启动的问题 社区版安装后_Windows To Go安装使用手记
  13. obs噪音抑制调多少合适_(3)阿里国际站OBS申请设置使用教程,OBS音频没有声音怎么办?国际站直播回放如何下载?...
  14. 简书python_用python轻松刷简书文章访问量
  15. 一次日歪了的渗透测试
  16. Java(设计模式)
  17. OkHttp调用第三方接口
  18. 微信小程序(心理咨询类)
  19. MFC C++知道当前日期,求昨天或前天的日期
  20. 【宇宙编码】厉害,生日那天:程序员小哥把天上的宇宙星云都送给女神了~

热门文章

  1. Unity 数据存储与读取_JSON
  2. 网迅wx1860网卡原理图驱动
  3. 老四苏-33:舰载机王 苏-33的另一个编号叫苏-27K。自然,它也是从苏-27改过来的,首飞于1987年8月17日。
  4. cesium gltf 1.0 2.0的一些扩展
  5. 扇贝python课程打卡_坚持打卡1000天,谈谈我对扇贝单词的看法
  6. android app签名方法
  7. 用nodejs爬数据
  8. 社区信息综合管理平台
  9. 小白的JAVA学习笔记(九)---异常处理(try/catch/finally,ducking)
  10. VScode常用插件下载