python html(文件/url/html字符串)转pdf

news2024/11/15 5:03:26

安装库

pip install pdfkit

第二步
下载程序wkhtmltopdf
https://wkhtmltopdf.org/downloads.html

下载7z压缩包 解压即可, 无需安装
在这里插入图片描述
解压后结构应该是这样, 我喜欢放在项目里, 相对路径引用(也可以使用绝对路径, 放其他地方)
在这里插入图片描述


import pdfkit

# 将 wkhtmltopdf.exe程序 路径
path_wkthmltopdf = './wkhtmltox/bin/wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)


def url_to_pdf(url, to_file):
    # 生成pdf文件,to_file为文件路径
    pdfkit.from_url(url, to_file, configuration=config, options={'encoding': 'utf-8'})
    print('完成')


# 这里传入我知乎专栏文章url,转换为pdf
# url_to_pdf(r'https://m.zhijiao.cn/newsmini/detail/102201', './招生简章/102201.pdf')

# html文件转pdf
def file_to_pdf(path, to_file):
    # 生成pdf文件,to_file为文件路径
    pdfkit.from_file(path, to_file, configuration=config, options={'encoding': 'utf-8'})
    print('完成')


# file_to_pdf('./123.html', './xxx/123.pdf')
pdf_err_counts = 0
# html字符串转pdf
def string_to_pdf(string, to_file):
    global pdf_err_counts
    # 生成pdf文件,to_file为文件路径
    try:
        pdfkit.from_string(string, to_file, configuration=config, options={'encoding': 'utf-8'})
    except Exception as e:
        pdf_err_counts += 1
        print('生成pdf失败', pdf_err_counts, e)

最好每个都像string_to_pdf函数一样, 捕获一下错误, 可以使程序更健壮, 避免转换失败导致程序停止(其他没写因为我没用, 懒得写)

参考: https://www.zhihu.com/tardis/zm/art/94608155?source_id=1005
转换效果参考文章中有, 我觉得还不错, 就是有点慢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1134167.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32F4VGT6-DISCOVERY:uart1驱动

对于这款板子&#xff0c;官方并没有提供串口例程&#xff0c;只能自行添加。 一、PA9/PA10复用成串口1功能不可用 驱动测试代码如下&#xff1a; main.c: #include "main.h" #include <stdio.h>void usart1_init(void) {GPIO_InitTypeDef GPIO_InitStruct…

题目 1120: C语言训练-“水仙花数“问题2python详解)——练气三层后期

✨博主&#xff1a;命运之光 &#x1f984;专栏&#xff1a;算法修炼之练气篇&#xff08;C\C版&#xff09; &#x1f353;专栏&#xff1a;算法修炼之筑基篇&#xff08;C\C版&#xff09; &#x1f352;专栏&#xff1a;算法修炼之练气篇&#xff08;Python版&#xff09; ✨…

基于 nodejs+vue城市轨道交通线路查询系统mysql

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

.NET、VUE利用RSA加密完成登录并且发放JWT令牌设置权限访问

后端生成公钥私钥 使用RSA.ToXmlString(Boolean) 方法生成公钥以及私钥。 RSACryptoServiceProvider rSA new(); string pubKey rSA.ToXmlString(false);//公钥 string priKey rSA.ToXmlString(true);//私钥 后端将生成的公钥发送给前端 创建一个get请求&#xff0c;将…

关于网络安全运营工作与安全建设工作的一些思考

以下内容是个人成长过程中对于网络安全运营工作的理解和思考&#xff0c;希望通过这篇文章帮助大家更好的去做安全运营体系化建设&#xff0c;开始吧&#xff01; 文章目录 一、网络安全运营是什么&#xff1f;二、网络安全运营建设阶段第一阶段&#xff1a;设备限制阶段第二阶…

思维导图软件 ConceptDraw MINDMAP mac中文特色介绍

ConceptDraw MINDMAP mac是一款思维导图绘制软件&#xff0c;它可以帮助用户快速创建各种类型的思维导图&#xff0c;如组织结构图、流程图、概念图和UML图等。该软件具有直观的界面和简单易用的操作方式&#xff0c;使得用户能够轻松地创建复杂的思维导图。此外&#xff0c;它…

【Java集合类面试二十六】、介绍一下ArrayList的数据结构?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;介绍一下ArrayList的数据…

C++ list 模拟实现

目录 1. 基本结构的实现 2. list() 3. void push_back(const T& val) 4. 非 const 迭代器 4.1 基本结构 4.2 构造函数 4.3 T& operator*() 4.4 __list_iterator& operator() 4.5 bool operator!(const __list_iterator& it) 4.6 T* operator->…

douyin ios 六神参数学习记录

玩那么久安卓了&#xff0c;也终于换一换ios终端分析分析&#xff0c;还是熟悉的x-gorgon&#xff0c;x-argus&#xff0c;x-medusa那些参数。 随便抓个抖音 ios版本的接口&#xff1a; 像评论接口&#xff1a; https://api26-normal-hl.amemv.com/aweme/v2/comment/list/?…

Unsatisfied dependency expressed through bean property ‘sqlSessionTemplate‘;

代码没有问题&#xff0c;但是启动运行报错 2023-10-25 16:59:38.165 INFO 228964 --- [ main] c.h.h.HailiaowenanApplication : Starting HailiaowenanApplication on ganluhua with PID 228964 (D:\ganluhua\code\java\hailiao-java\target\classes …

mysql 基础知识

MySQL 是一种关系型数据库&#xff0c;在Java企业级开发中非常常用&#xff0c;因为 MySQL 是开源免费的&#xff0c;并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL&#xff0c;因此它的稳定性是有保障的。MySQL是开放源代码的&#xff0c;因此任何人都可以在 GPL(Gener…

HarmonyOS鸿蒙原生应用开发设计- 华为分享图标

HarmonyOS设计文档中&#xff0c;为大家提供了独特的华为分享图标&#xff0c;开发者可以根据需要直接引用。 开发者直接使用官方提供的华为分享图标内容&#xff0c;既可以符合HarmonyOS原生应用的开发上架运营规范&#xff0c;又可以防止使用别人的内容产生的侵权意外情况等&…

大型应用的架构演进--spring家族在其中的作用

01 大型应用的架构演进 带来的挑战&#xff1a; 运维与监控 分布式带来的复杂性 接口的调整成本 测试成本 依赖管理成本 02 Spring家族 在我看来&#xff0c;springboot的3大特点(我常用的)&#xff1a;内置的web容器&#xff1b;开箱即用的starter模版&#xff1b;自动配置&…

什么是光学字符识别 (Optical Character Recognition)?

人工智能如何推动光学字符识别OCR的发展 人工智能正在不断改变着光学字符识别&#xff08;Optical Character Recognition&#xff09;工具的功能。作为计算机视觉的一个分支领域&#xff0c;OCR主要用于处理文本图像&#xff0c;将图像中的文本转换为机器可读的形式。换言之&…

JS小数运算精度丢失的问题

工作中会不会经常会碰到一些数据指标的计算&#xff0c;比如百分比转化&#xff0c;保留几位小数等&#xff0c;就会出现计算不准确&#xff0c;数据精度丢失的情况。通过这篇分享借助第三方库能够轻松解决数据精度丢失的问题。 一、场景复现 JS数字精度丢失的一些常见问题 /…

Leetcode 18 三数之和

//双指针&#xff0c;不过因为是三个数所以左侧是两个下标class Solution {public List<List<Integer>> threeSum(int[] nums) {int n nums.length;Arrays.sort(nums);List<List<Integer>> ans new ArrayList<List<Integer>>();for(int …

如何制作二维码会议签到系统?

展会电子签到系统是一种通过电子方式进行参会者签到的系统。展会电子签到系统包括多种签到方式&#xff0c;如二维码签到、人脸识别、胸卡等。其中二维码签到制作简单、使用方便&#xff0c;是一种大家比较常用的方式。 二维码系统签到的优势主要有以下几点&#xff1a; 1、省…

《Spring Boot源码解读与原理分析》带你走入框架的世界

Java被称为最热门的语言。 而Spring Boot为我们提供了一种优雅而高效的方式来创建Spring基于的应用程序。它利用了许多Spring项目和第三方库,通过自动配置简化了项目配置。 此书籍不仅带来了许多题例&#xff0c;而且文章简而易懂&#xff0c;适合小白阅读&#xff0c;而且每…

响应式设计与自适应设计有何不同

目录 前言 响应式设计 用法 理解 自适应设计 用法 理解 高质量的设计 响应式设计与自适应设计是两种不同的网页设计方法&#xff0c;它们都旨在提供更好的用户体验&#xff0c;确保网站能够在不同设备和屏幕尺寸上正确显示。虽然这两种设计方法有共同之处&#xff0c;但…

测试员突破瓶颈指南,不看又废了一年

有没有感觉忙忙碌碌&#xff0c;一年又一年&#xff0c;却发现自己在测试的道路上好像没啥长进 测试群、测开群、自动化群&#xff0c;没少加&#xff1b; 文章、公众号、网盘的资源没少关注和搜集&#xff1b; 大佬推荐的书没少买&#xff0c;书上落灰了都没碰过&#xff1…