当前位置: 首页 > news >正文

python生成图片和pdf,快速

1、下载安装

pip install imgkit
pip install pdfkit

2、wkhtmltopdf工具包,下载安装
下载地址:https://wkhtmltopdf.org/downloads.html
在这里插入图片描述
3、生成图片

import imgkit
path_wkimg = r'D:\app\wkhtmltopdf\bin\wkhtmltoimage.exe'  # 工具路径,安装的路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
# 1、将html文件转为图片
options = {'encoding': 'utf8'} # 解决乱码
imgkit.from_file(r'temp.html', 'helloworld.jpg', config=cfg, options=options)# 2、从url获取html,再转为图片
# imgkit.from_url('https://httpbin.org/ip', 'ip.jpg', config=cfg, options=options)
# 3、将字符串转为图片
# imgkit.from_string('Hello!', 'hello.jpg', config=cfg)

4、转为pdf

import pdfkitpath_wkpdf = r'D:\app\wkhtmltopdf\bin\wkhtmltopdf.exe'  # 工具路径
cfg = pdfkit.configuration(wkhtmltopdf=path_wkpdf)# 1、将html文件转为pdf
pdfkit.from_file(r'./helloworld.html', 'helloworld.pdf', configuration=cfg)
# 传入列表
pdfkit.from_file([r'./helloworld.html', r'./111.html', r'./222.html'], 'helloworld.pdf', configuration=cfg)# 2、从url获取html,再转为pdf
pdfkit.from_url('https://httpbin.org/ip', 'ip.pdf', configuration=cfg)
# 传入列表
pdfkit.from_url(['https://httpbin.org/ip','https://httpbin.org/ip'], 'ip.pdf', configuration=cfg)# 3、将字符串转为pdf
pdfkit.from_string('Hello!','hello.pdf', configuration=cfg)

5、a4纸张大小

import imgkit
path_wkimg = r'D:\app\wkhtmltopdf\bin\wkhtmltoimage.exe'  # 工具路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
# # 1、将html文件转为图片
# A4纸张大小
# options = {
#     'encoding': 'utf8', # 解决乱码
#     'width': 599,
#     'height': 845
# }
options = {'encoding': 'utf8','width': 599,# 'height': 845
}
imgkit.from_file(r'temp.html', 'helloworld.jpg', config=cfg, options=options)
<!DOCTYPE html>
<html>
<head><title>打印</title>
</head>
<body style="margin: 5px"><!--<div style="width: 599px;height: 845px">--><div style="width: 599px;height: 100%"><div>大得</div><div>大得</div></div>
</body>
</html>

5、a4纸生成图片

import imgkit
path_wkimg = r'D:\app\wkhtmltopdf\bin\wkhtmltoimage.exe'  # 工具路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
# # 1、将html文件转为图片
# A4纸张大小
# options = {
#     'encoding': 'utf8', # 解决乱码
#     'width': 599,
#     'height': 845
# }
options = {'encoding': 'utf8','width': 599,'height': 845
}
imgkit.from_file(r'temp.html', 'helloworld.jpg', config=cfg, options=options)
<!DOCTYPE html>
<html>
<head><title>打印</title><style>body {margin: 5px;}.container {width: 599px;height: 100%;}.row {height: 300px;}.row div {/* 允许在单词内部换行,确保长字符串能正常换行 */word-wrap: break-word;word-break: break-all;}</style>
</head><body><div class="container"><div class="row"><div>大得6666666666669999999999999999999999999999999999999999999999999999999999999999999999977777777777777778888888888888</div><div>大得</div></div><div class="row"><div>大得</div><div>大得</div></div></div>
</body></html>

在这里插入图片描述
6、模糊问题,使用quality,zoom解决

import imgkit
path_wkimg = r'D:\app\wkhtmltopdf\bin\wkhtmltoimage.exe'  # 工具路径
cfg = imgkit.config(wkhtmltoimage=path_wkimg)
# # 1、将html文件转为图片
# A4纸张大小
options = {'encoding': 'utf8',   # 乱码'width': 599,'enable-local-file-access': '',  # 允许访问本地文件'quality': 100,     # 提高分辨率,100最高'zoom': 4       # 增加缩放比例
}
imgkit.from_file(r'temp.html', 'helloworld.jpg', config=cfg, options=options)
<!DOCTYPE html>
<html>
<head><title>打印</title>
</head>
<body style="margin: 5px"><div style="width: 599px;height: 100%"><div style="height: 300px;"><div>大得666666666666999999999999999999999</div><div>大得</div></div><div style="height: 300px;"><div>大得</div><div>大得</div></div></div>
</body>
</html>

相关文章:

python生成图片和pdf,快速

1、下载安装 pip install imgkit pip install pdfkit2、wkhtmltopdf工具包&#xff0c;下载安装 下载地址&#xff1a;https://wkhtmltopdf.org/downloads.html 3、生成图片 import imgkit path_wkimg rD:\app\wkhtmltopdf\bin\wkhtmltoimage.exe # 工具路径&#xff0c;安…...

剑指Offer|LCR 044.在每个树行中找最大值

LCR 044.在每个树行中找最大值 给定一棵二叉树的根节点 root &#xff0c;请找出该二叉树中每一层的最大值。 示例 1&#xff1a; 输入: root [1,3,2,5,3,null,9] 输出: [1,3,9] 解释:1/ \3 2/ \ \ 5 3 9 示例 2&#xff1a; 输入: root [1,2,3] 输出: [1,3] 解…...

PWM信号概述

什么是PWM信号&#xff1f; PWM&#xff08;Pulse-width modulation&#xff09;是脉冲宽度调制的缩写。 脉冲宽度调制是一种模拟信号电平数字编码方法。 脉冲宽度调制PWM是通过将有效的电信号分散成离散形式从而来降低电信号所传递的平均功率的一种方式。所以根据面积等效法…...

关于BAR(PCIE BAR或AXI BAR)的解释

假设某BAR的默认值是xxxx_0000&#xff08;这里表示8个比特位&#xff09;&#xff0c;其中低4位不可写&#xff0c;可操作的最低位是4&#xff0c;所以该BAR的大小是2^416字节&#xff1b; 1、系统软件向BAR写0xFF 2、系统软件读BAR&#xff0c;读到的值是0xF0&#xff0c;于是…...

计算机的错误计算(二百二十一)

摘要 利用一个数学解题器化简计算 实验表明&#xff0c;即使是数学解题器&#xff0c;也是一派胡言。 有一读者来信&#xff0c;询问数学大模型的推理事宜。现就前面的案例继续做一讨论。 例1. 化简计算摘要中算式。 下面是与一个数学解题器的对话。 点评&#xff1a; &am…...

【力扣Hot 100】矩阵1

矩阵置零&#xff1a;1. 开两个数组判断该行/该列是否有0&#xff1b;2. 用第0行/第0列分别判断该列/该行是否有0 螺旋矩阵&#xff1a;记录方向&#xff0c;一直按某方向前进&#xff0c;遇到障碍方向就变一下 1. 矩阵置零 给定一个 *m* x *n* 的矩阵&#xff0c;如果一个元…...

移动端VR处理器和传统显卡的不同

骁龙 XR 系列芯片 更多地依赖 AI 技术 来优化渲染过程&#xff0c;而传统的 GPU 渲染 则倾向于在低画质下运行以减少负载。这种设计是为了在有限的硬件资源下&#xff08;如移动端 XR 设备&#xff09;实现高性能和低功耗的平衡。以下是具体的分析&#xff1a; 1. AI 驱动的渲染…...

「 机器人 」利用数据驱动模型替代仿真器:加速策略训练并降低硬件依赖

前言 在强化学习(Reinforcement Learning, RL)中,策略训练需要大量的交互数据(状态、动作、奖励、下一状态),而这些数据通常来自仿真器或真实硬件。传统高保真仿真器虽然能在一定程度上模拟飞行器的动力学,但往往计算量大、开发成本高,且仍可能与真实环境存在差距。为此…...

MATLAB 如何避免复杂shp文件对inpolygon的影响

**任务描述&#xff1a;**当我想用inpolygon函数将属于非洲的pixel选出来时&#xff0c;发现因为周边小岛的影响&#xff0c;pixel选取有问题&#xff0c;如下图。 第一种解决办法&#xff1a; 首先将复杂shp文件查分成简单的shp文件&#xff0c;即将不相交的元素分离开 [QGIS…...

【2024年华为OD机试】 (C卷,200分)- 贪吃的猴子(JavaScriptJava PythonC/C++)

一、问题描述 题目解析 问题描述 一只猴子来到果园&#xff0c;发现许多串香蕉排成一行&#xff0c;每串香蕉上有若干根香蕉。每串香蕉的根数由数组 numbers 给出。猴子每次只能从行的开头或末尾获取香蕉&#xff0c;并且只能获取 N 次。求猴子最多能获取多少根香蕉。 输入…...

PostgreSQL中级专家是什么意思?

数据库技术领域&#xff0c;PostgreSQL 作为一种广泛使用的开源关系型数据库管理系统&#xff0c;吸引了众多技术人员深入学习和研究。“PostgreSQL 中级专家” 是对掌握该数据库特定技能层次的一种描述。 知识储备 中级专家深入理解 PostgreSQL 的体系结构&#xff0c;包括进程…...

从根源分析,调试,定位和解决MacOS ld: unsupported tapi file type ‘!tapi-tbd‘ in YAML file

你要是遇到同样错误&#xff0c;找一圈都没有解决&#xff0c;建议认真读一下本文&#xff0c;这个应该是最终极的解决办法&#xff0c;从原理上剖析了产生的原因&#xff0c;同时给出来了调试和定位的办法。 maccos使用brew安装了一个gcc14, 结果编译一个最简单的程序都报错&a…...

【Uniapp-Vue3】previewImage图片预览

如果我们想要实现点击一张图片放大&#xff0c;并能够左右滑动&#xff0c;就要使用previewImage这个API。 uni.previewImage({ current:xxx, // 当前图片下标 urls:xxx, // 图片路径组 // 其他参数 }) 我们先编写一个点击图片的事件&#xff0c;并传递当前点击图片的下标&…...

doris:Insert Into Values

INSERT INTO VALUES 语句支持将 SQL 中的值导入到 Doris 的表中。INSERT INTO VALUES 是一个同步导入方式&#xff0c;执行导入后返回导入结果。可以通过请求的返回判断导入是否成功。INSERT INTO VALUES 可以保证导入任务的原子性&#xff0c;要么全部导入成功&#xff0c;要么…...

15 分布式锁和分布式session

在java中一个进程里面使用synchronized在new出来对象头信息中加锁&#xff0c;如果是静态方法中在加载的类信息中加锁(我们在锁的原理中讲过)。如果使用lock加锁可以自己指定。这些都是在同一个进程空间中的操作。如果在分布式环境中由于程序不在一个进程空间&#xff0c;就没办…...

迅为RK3568开发板篇OpenHarmony实操HDF驱动控制LED-添加内核编译

编译内核时将该 HDF 驱动编译到镜像中&#xff0c;接下来编写驱动编译脚本 Makefile&#xff0c;代码如下所示&#xff1a; 加入编译体系&#xff0c;填加模块目录到 drivers/hdf_core/adapter/khdf/linux/Makefile 文件 更多内容可以关注&#xff1a;迅为RK3568开发板篇OpenHa…...

C语言练习(23)

求两个整数的最大公约数和最小公倍数&#xff0c;用一个函数求最大公约数&#xff0c;用另一函数根据求出的最大公约数求最小公倍数。 ①不用全局变量&#xff0c;分别用两个函数求最大公约数和最小公倍数。两个整数在主函数中输入&#xff0c;并传送给函数f1&#xff0c;求出…...

LabVIEW 太阳能光伏发电系统智能监控

本文介绍了基于 LabVIEW 的太阳能光伏发电监控系统的设计与实现&#xff0c;着重探讨了其硬件配置、软件架构以及系统的实现方法。该系统能够有效提高太阳能光伏发电的监控效率和精确性&#xff0c;实现了远程监控和数据管理的智能化。 ​ 项目背景 在当前能源紧张与环境污染…...

大唐杯赛道一国一备赛思路

前情&#xff1a;本人非通信专业&#xff0c;打这个比赛纯粹为了保研加分&#xff0c;因为本人同届同学院的人参加了一次&#xff0c;获得了省级&#xff0c;加上有保研学长说这个比赛挺简单的&#xff0c;一直想参加的&#xff0c;机缘巧合下和另一个需要保研的同学组队&#…...

用户中心项目教程(五)---MyBatis-Plus完成后端初始化+测试方法

文章目录 1.数据库的链接和创建2.建库建表语句3.引入依赖4.yml配置文件5.添加相对路径6.实体类的书写7.Mapper接口的定义8.启动类的指定9.单元测试10运行时的bug 1.数据库的链接和创建 下面的这个就是使用的我们的IDEA链接这个里面的数据库&#xff1a; 接下来就是输入这个用户…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

在rocky linux 9.5上在线安装 docker

前面是指南&#xff0c;后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况&#xff0c;可以通过以下几种方式模拟或触发&#xff1a; 1. 增加CPU负载 运行大量计算密集型任务&#xff0c;例如&#xff1a; 使用多线程循环执行复杂计算&#xff08;如数学运算、加密解密等&#xff09;。运行图…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题

分区配置 (ptab.json) img 属性介绍&#xff1a; img 属性指定分区存放的 image 名称&#xff0c;指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件&#xff0c;则以 proj_name:binary_name 格式指定文件名&#xff0c; proj_name 为工程 名&…...

C++.OpenGL (14/64)多光源(Multiple Lights)

多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...

QT3D学习笔记——圆台、圆锥

类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体&#xff08;对象或容器&#xff09;QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质&#xff08;定义颜色、反光等&#xff09;QFirstPersonC…...