首页 > 编程语言 >使用 wkhtmltopdf python html转pdf

使用 wkhtmltopdf python html转pdf

时间:2023-06-02 12:07:07浏览次数:44  
标签:python wkhtmltopdf html file pdf options


使用 wkhtmltopdf python html转pdf


文章目录

  • 使用 wkhtmltopdf python html转pdf
  • 前言
  • 一、环境
  • 二、安装与配置
  • 1.首先安装pdfkit0.61
  • 2.python html转pdf
  • 3.url转pdf
  • 遇到的问题
  • 总结



前言

使用 wkhtmltopdf python html 转 pdf。


一、环境

  1. pdfkit0.61
  2. python3.7

二、安装与配置

1.首先安装pdfkit0.61

pip install pdfkit

2.下载wkhtmltopdf

https://wkhtmltopdf.org/downloads.html


使用 wkhtmltopdf python html转pdf_html

根据自己的电脑下载相应的版本,然后安装

2.python html转pdf

# -*- coding: utf-8 -*-
import pdfkit
#启动参数
wkhtmltopdf_options = {
	'enable-local-file-access': None
}
#下载的wkhtmltopdf绝对路径
path_wkthmltopdf = r'D:\\install\\wkhtmltox\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
#h.html 输入 out.pdf 输出
pdfkit.from_file("h.html", "out.pdf", configuration=config, options=wkhtmltopdf_options)

3.url转pdf

pdfkit.from_url("https://www.baidu.com", "out.pdf", configuration=config, options=wkhtmltopdf_options)

遇到的问题

1.pdf 中文乱码

#html head标签加上下面
<meta http-equiv="content-type" content="text/html;charset=utf-8">



OSError: wkhtmltopdf reported an error:
Loading pages (1/6)
Warning: Blocked access to file D:/Paddle/htmlToPdf/bg2.png
Error: Failed to load about:blank, with network status code 301 and http status code 0 - Protocol “about” is unknown
Counting pages (2/6)
Resolving links (4/6)
Loading headers and footers (5/6)
Printing pages (6/6)
Done
Exit with code 1 due to network error: ProtocolUnknownError

使用 wkhtmltopdf python html转pdf_html_02

#加上启动参数
wkhtmltopdf_options = {
	'enable-local-file-access': None
}
pdfkit.from_file(html, to_file, configuration=config, options=wkhtmltopdf_options)

总结

~~~


标签:python,wkhtmltopdf,html,file,pdf,options
From: https://blog.51cto.com/u_16015778/6401414

相关文章

  • python包上传到pypi过程
    python包上传到pypi过程提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录python包上传到pypi过程前言一、pypi是什么?二、使用步骤1.创建目录结构2.创建pyproject.toml3.创建README.md4.创建许可证5.打包6.注册pypi账号和testpypi账号7.上传到testpypi8......
  • 项目场景:python pyqt5 threading 多线程 数据混乱
    项目场景:pythonpyqt5threading多线程数据混乱根据配置文件多线程调用接口#问题描述:参考http://www.starky.ltd/2019/09/23/pro-python-concurrency-with-multi-threading/多线程调用接口,取得数据回调修改页面上的值发生混乱不准#原因分析:运行线程数量过多没有顺序......
  • python 使用 openpyxl 操作 excel
    python使用openpyxl操作excel文章目录python使用openpyxl操作excel前言1.环境2.读取数据3.openpyxl前言二、使用zipfile、openpyxl、flask批量导出excelzip1.环境openyxl:3.0.6python:3.7.6pandas:1.3.52.读取数据#使用pandas读取数据#https://pandas.pydata.org/docs......
  • python 中json数据可以以类似数组的方法访问 print(j["age"]["nian"])
    使用Python处理Json数据-猫坚果NutCat-博客园(cnblogs.com)JSON模组的常用方法load/loads:把JSON转换为Python#somejsonsomebody_info='{"name":"WenjieYe","age":75,"nationality":"China"}'#parse......
  • Python中字典取值常用的方法!
    字典是Python中比较常见的数据类型之一,它是一种可变容器模型,可以存储任意数量的任意类型的数据,而且字典中的每个元素由一个键和一个值组成,键和值之间用冒号分隔。本文为大家介绍一下Python中字典取值常用的方法,跟着学习一下吧。1、使用方括号[]运算符使用方括号[]运算......
  • python算法学习——第1天
    目录1、3,5,7的倍数判定2、鸡兔同笼3、计算有n个字符串中最长的字符串长度4、输出10个不重复的英文字母5、统计一段文字的单词个数并按字母顺序排序输出6、字典合并7、最大公约数&最小公倍数8、输出全排列9、输出<=n的全部回文数10、重复元素判定1、3,5,7的倍数判定num=int(inp......
  • python datetime 获取本月第一天 上月最后一天
    完整代码importdatetime(datetime.date.today().replace(day=1)-datetime.timedelta(days=1)).strftime("%Y-%m")获取本月第一天byyc=datetime.date.today().replace(day=1)获取上月最后一天syym=byyc-datetime.timedelta(days=1)获取上月月份sy=syym.strftime("%Y......
  • python操作InfluxDB
    InfluxDB版本:1.8.0以下针对1.x版本influxdb操作语法python针对influxdb的操作安装模块pipinstallinfluxdbfrominfluxdbimportinfluxDBClientconn_db=InfluxDBClient('localhost','8086','username','password','db_name')#1、显示已存在的......
  • asyncio:python3未来并发编程主流、充满野心的模块
    https://www.cnblogs.com/traditional/p/11828780.html楔子asyncio是Python在3.5版本中正式引入的标准库,这是Python未来并发编程的主流,非常重要的一个模块。有一个Web框架叫sanic,就是基于asyncio,使用sanic可以达到匹配Go语言的并发量(有点夸张了,还是有差距的,但......
  • python正则表达式之道
    Python使用正则表达式的步骤:1、导入正则表达式模块2、创建Regex对象re.compile(),传入正则表达式3、使用search()方法,传入字符串4、调用group()方法。举例:importre #1ne=re.compile(r'\d\d\d\-\d\d') #2mo=ne.search('yourdatasis456-11.') #3print(mo.gro......