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

wkhtmltopdf 实现批量对网页转为图片的好工具,快速实现大量卡片制作

欢迎来到涛涛聊AI

1、需求痛点

在学习当中经常遇到一些知识点,想和大家分享。但只有文本形式,很多人不愿意去阅读,也看不到重点。

如果自己去单独设计页面版式,又太浪费时间。那就想着有没有一种方法,可以把一个知识点做成卡片形式的。

当然通过扣子平台可以完成。可是每一个知识点的形式不固定。有大有小,有长有短。

让大模型生成图片又行不通。想到了让大模型生成网页形式,然后再对网页形式截图,形成卡片。

好主意,说干就干。

大模型生成网页这个已经没有难度,而且也进行了实验,完全可行。

优先解决生成图片的问题。

经过网络搜索,知道了这个wkhtmltopdf.但其实也可以生成网页。下面我们就一步一步来演示操作。

2、软件安装。

这个软件不太好找,很多的时候下载不下来。为了方便大家使用,我已经将它放置网盘。需要的同学自行获取。

更换安装路径。

为了避免后期在使用命令行调用的时候,出现莫名的错误。所以这里建议放到一个没有空格的,并且只有英文的目录当中。

3、查看帮助。

查看目录结构。

内容非常少,在bin目录有exe文件。

显示命令选项。

利用大模型进行翻译。

直接把图片丢给豆包大模型。

这是 wkhtmltoimage 工具的命令行选项说明文档 。wkhtmltoimage 是一个能将 HTML 页面转换为图片的工具。以下是对这些选项的介绍:

一般选项

  • 裁剪相关
    • --crop-h <int>:设置裁剪高度。
    • --crop-w <int>:设置裁剪宽度。
    • --crop-x <int>:设置裁剪的 x 坐标。
    • --crop-y <int>:设置裁剪的 y 坐标。
  • 帮助信息
    • -H, --extended-help:显示更详尽的帮助信息,介绍不常见的命令开关。
    • -h, --help:显示普通帮助信息。
  • 文件格式
    • -f, --format <format>:指定输出图片的格式 。
  • 屏幕尺寸相关
    • --height <int>:设置屏幕高度(默认根据页面内容计算,默认值为 0 )。
    • --width <int>:设置屏幕宽度,仅作为参考值,使用 --disable -smart-width 可使其严格生效(默认值 1024)。
  • 许可与日志
    • --license:输出版本许可信息后退出。
    • --log-level <level>:设置日志级别,可选择 none(无日志)、error(错误日志)、warn(警告日志)、info(信息日志,默认值 )。
    • -q, --quiet:减少输出信息,等同于 --log-level none,用于向后兼容。
  • 图片质量与版本
    • --quality <int>:设置输出图片质量,取值范围 0 - 100(默认 94 )。
    • -V, --version:输出版本信息后退出。

如果使用中遇到问题或想请求新功能,可访问 <https://wkhtmltopdf.org/support.html>

4、实战演练。

使用大模型生成的相关使用。

第一次的提示词

我写的提示词如下。

请帮我生成关于 wkhtml2pdf.相关知识的介绍和使用。用html格式输出。我要将网页截成图片。方便在手机上阅读。所以生成的网页宽高比。要对手机访问友好。

让大模型优化提示词。

再次和AI交互

我现在想编写一段大模型提示词,我把需求发给你,你帮我把提示词生成下,

AI上道了。

我的需求

任务类型 :创意HTML编写核心需求:更加用户输入的主题,生成相关知识、或者使用的简述角色设定:AI专家,技术专家输入数据:一个主题输出要求:html格式约束条件:版式面向手机访问需求参考示例:python学习路线、什么是智能体、AI绘画如何入门

AI给出的模版

### 角色设定 
您是兼具AI专家与技术传播者双重身份的知识架构师,擅长将复杂概念转化为移动端友好的结构化内容。### 核心任务 
基于用户提供的主题,生成符合以下要求的知识内容:
1. 核心概念解释(3个关键点)
2. 学习/实践路径(分3阶段)
3. 常见问题解析(2-3个典型问题)
4. 资源推荐(分工具/教程/社区3类)### 背景约束 
- 用户场景:手机端知识速查 
- 知识深度:兼顾新手理解与进阶指引 
- 风险规避:需标注前沿技术的局限性 ### 输入处理 
{{ 用户主题 }} 示例参考:
- Python学习路线:需包含版本选择建议、IDE对比 
- 智能体技术:区分与传统AI的差异 
- AI绘画入门:提示词工程基础+版权声明 ### 输出要求 
1. **结构规范**- 每模块带🔑emoji引导重点 - 段落≤3行,每行≤15字 - 技术名词后括号标注英文 
2. **移动端优化**- 主标题H2+子标题H3 - 关键数据用**加粗**突出 - 避免嵌套表格/复杂列表 
3. **内容控制**- 总字数300-400字 - 每模块包含1个类比案例 - 禁用数学公式 ### 生成示例(以"深度学习入门"为例)
🔑 **核心三要素** 
- 神经网络(Neural Network)→ 类脑结构模拟 
- 损失函数(Loss Function)→ 效果评估尺 
- 反向传播(Backpropagation)→ 参数调整术 📚 **三阶段路径** 
1. 基础认知:Python→线性代数→PyTorch 
2. 实战进阶:Kaggle Titanic→MNIST手写识别 
3. 领域深化:CV/NLP/RL任选专项突破 
...

做了个工作流,但格式太固定了。而且也不是html,难道是我的想法不能实现?

还是我自己分下类吧但生成的markdown,我要的是html,调整提示词。

第三次提示词

# 角色
你是一位出色的知识架构师,兼具AI专家与技术传播者的双重身份,擅长把复杂概念转化为适合移动端浏览的结构化内容。## 技能
### 技能 1: 概念类知识内容
1. 基于用户提供的主题,生成主题的知识内容:- 核心概念解释(3个关键点)- 学习/实践路径(分3阶段)- 实例(2个例子)- 常见问题解析(2 - 3个典型问题)- 资源推荐(分工具/教程/社区3类)
### 技能 1: 实操类技能    
2. 基于用户提供的主题,生成主题的知识内容:- 操作步骤- 常见问题解析(2 - 3个典型问题)
2. 生成的内容需符合以下规范:- 结构规范:- 每模块带🔑emoji引导重点 - 段落≤3行,每行≤15字 - 移动端优化:- 主标题H2+子标题H3 - 关键数据用加粗突出 - 避免嵌套表格/复杂列表- 内容控制:- 总字数300 - 400字 - 每模块包含1个类比案例 - 禁用数学公式- 输出格式:-输出为HTML格式### 示例参考(以"深度学习入门"为例)
🔑 **核心三要素** 
- 神经网络(Neural Network)→ 类脑结构模拟 
- 损失函数(Loss Function)→ 效果评估尺 
- 反向传播(Backpropagation)→ 参数调整术 📚 **三阶段路径** 
1. 基础认知:Python→线性代数→PyTorch 
2. 实战进阶:Kaggle Titanic→MNIST手写识别 
3. 领域深化:CV/NLP/RL任选专项突破 ### 输入处理 
{{ 用户主题 }}示例参考:
- Python学习路线:需包含版本选择建议、IDE对比 
- 智能体技术:区分与传统AI的差异 
- AI绘画入门:提示词工程基础+版权声明 ## 限制:
- 用户场景限定为手机端知识速查。
- 知识深度需兼顾新手理解与进阶指引。
- 需标注前沿技术的局限性。
- 生成html格式
- 所输出的内容必须按照给定的格式进行组织,不能偏离框架要求。

还得慢慢优化。

wkhtmltoimage 命令行示例

自由发挥

为了兼容问题的随机性,干脆去掉过多的限定,让大模型自由发挥些。

请根据用户的主题生成相关知识的介绍和使用。
要求
1、用html格式输出,我要将网页截成图片。
2、页面版式方便在手机上阅读
3、添加emoji符合方便阅读
4、样式和内容在一起,不要分成多个文件

测试下

原始网页

结果emoji表情没有了

更换为添加颜色吧

还好吧,慢慢优化。

这样可以批量用程序去生成小卡片

.\wkhtmltoimage.exe --quality 85 D:\ProgramData\wkhtmltopdf\html\mcp2.html aaa2.jpg

相关文章:

wkhtmltopdf 实现批量对网页转为图片的好工具,快速实现大量卡片制作

欢迎来到涛涛聊AI 1、需求痛点 在学习当中经常遇到一些知识点&#xff0c;想和大家分享。但只有文本形式&#xff0c;很多人不愿意去阅读&#xff0c;也看不到重点。 如果自己去单独设计页面版式&#xff0c;又太浪费时间。那就想着有没有一种方法&#xff0c;可以把一个知识…...

L1-6 大勾股定理

题目 大勾股定理是勾股定理的推广&#xff1a;对任何正整数 n 存在 2n1 个连续正整数&#xff0c;满足前 n1 个数的平方和等于后 n 个数的平方和。例如对于 n1 有 3^2 4^2 5^2 &#xff1b;n2 有 10^2 11^2 12^2 13^2 14^2 等。给定 n&#xff0c;本题就请你找出对应的解。 输…...

Linux下Docker安装超详细教程(以CentOS为例)

前言 Docker 已成为现代应用开发和部署的标配工具。本教程将手把手教你 在 CentOS 系统上安装 Docker&#xff0c;涵盖从环境准备到验证安装的全流程&#xff0c;并解决常见问题。无论你是运维工程师还是开发者&#xff0c;均可快速上手。 一、环境要求 操作系统 CentOS 7 或更…...

深入解析xDeepFM:结合压缩交互网络与深度神经网络的推荐系统新突破

今天是周日&#xff0c;我来解读一篇有趣的文章——xDeepFM。这篇文章由 Mao et al. 发表在SIGIR 2019会议。文章提出了一个新的网络模型——压缩交互网络&#xff08;CIN&#xff09;&#xff0c;用于显式地学习高阶特征交互。通过结合 CIN 和传统的深度神经网络&#xff08;D…...

CST1017.基于Spring Boot+Vue共享单车管理系统

计算机/JAVA毕业设计 【CST1017.基于Spring BootVue共享单车管理系统】 【项目介绍】 共享单车管理系统&#xff0c;基于 Spring Boot Vue 实现&#xff0c;功能丰富、界面精美 【业务模块】 系统共有四类用户&#xff0c;分别是&#xff1a;监管用户、运营用户、调度用户、普…...

CISA关键措施要求解析:提升组织网络安全的实用指南

1. 引言 在当今日益复杂的网络安全环境中,组织面临着前所未有的挑战。美国网络安全与基础设施安全局(CISA)提出的关键措施要求,为组织提供了一个全面的框架来加强其网络安全态势。本文将深入探讨这些措施,并提供实际的实施建议。 2. CISA关键措施概述 CISA关键措施包括以下几…...

vue实现二维码生成器和解码器

vue实现二维码生成器和解码器 1.生成基本二维码&#xff1a;根据输入的value生成二维码。 2.可定制尺寸&#xff1a;通过size调整大小。 3.颜色和背景色&#xff1a;设置二维码颜色和背景。 4.静区&#xff08;quiet zone&#xff09;支持&#xff1a;通过quietZone调整周围的…...

TypeScript 的 interface 接口

TypeScript 的 interface 接口 简介 interface 是对象的模板&#xff0c;可以看作是一种类型约定&#xff0c;中文译为“接口”。使用了某个模板的对象&#xff0c;就拥有了指定的类型结构。 interface Person {firstName: string;lastName: string;age: number;} 上面示例中…...

c#和form实现WebSocket在线聊天室

c#和form实现WebSocket在线聊天室 功能点 后端程序 (Program.cs)​​1.WebSocket 聊天服务器核心功能​​a.管理客户端连接&#xff08;ConnectionManager 类&#xff09;b.支持公聊消息广播&#xff08;所有用户可见&#xff09;c.支持私聊消息&#xff08;通过 用户ID 格式指…...

量子代理签名:量子时代的数字授权革命

1. 量子代理签名的定义与核心原理 量子代理签名&#xff08;Quantum Proxy Signature, QPS&#xff09;是经典代理签名在量子信息领域的延伸&#xff0c;允许原始签名者&#xff08;Original Signer&#xff09;授权给代理签名者&#xff08;Proxy Signer&#xff09;代为签署文…...

「Unity3D」TextMeshPro中的TMP_InputField,用来实现输入框的几个小问题

第一&#xff0c;正确设置Scrollbar。 设置Scrollbar之后&#xff0c;不能设置Text Component的Font Size为Auto Size&#xff0c;否则Scrollbar无法正确计算显示。 那么&#xff0c;要想自动适配字体大小&#xff0c;可以让Placeholder中的Font Size设置为Auto&#xff0c;这…...

Docker 介绍 · 安装详细教程

为什么选择 Docker&#xff1f; ✅ 环境一致性 – 告别“在我机器上能跑”的问题&#xff0c;确保开发、测试、生产环境一致。 ✅ 高效轻量 – 秒级启动&#xff0c;资源占用远低于传统虚拟机。 ✅ 跨平台支持 – 可在任何支持 Docker 的环境中运行&#xff0c;包括云服务器、…...

vulnhub:sunset decoy

靶机下载地址https://www.vulnhub.com/entry/sunset-decoy,505/ 渗透过程 简单信息收集 nmap 192.168.56.0/24 -Pn # 确定靶机ip&#xff1a;192.168.56.121 nmap 192.168.56.121 -A -T4 # 得到开放端口22,80 在80端口得到save.zip&#xff0c;需要密码解压。 john破解压缩…...

方案精读:71页制造企业一体化ERP系统项目实施方案【附全文阅读】

今天聊聊制造企业 ERP 系统项目实施方案。 某钾肥企业在发展中面临信息化难题,像物资编码不规范、业务手工化、财务业务脱节等 。为此,打造 “流程驱动,业务整合” 的一体化 ERP 管理平台很关键。它涵盖采购、销售、生产、运营流程,实现供应链、预算、资金、财务整…...

MATLAB遇到内部问题,需要关闭,Crash Decoding : Disabled - No sandbox or build area path

1.故障界面 MATLAB运行时突然中断&#xff0c;停止运行。故障界面如图&#xff1a; MATLAB Log File: C:\Users\wei\AppData\Local\Temp\matlab_crash_dump.21720-1 ------------------------------------------------ MATLAB Log File -----------------------------------…...

【Redis】Redis C++使用

一、Redis的自定义网络协议 1.1 为什么可以编写出一个自定义的Redis客户端 为什么我们可以编写出一个自定义的Redis客户端&#xff1f;因为Redis公开了自己的自定义协议。而对于一些其他软件的客户端&#xff0c;我们无法编写出一个自定义的Redis客户端&#xff0c;因为他们没…...

每日一题(小白)暴力娱乐篇19

样例&#xff1a; 6 1 1 4 5 1 4 输出&#xff1a; 56 66 52 44 54 64 分析题意可以得知&#xff0c;就是接收一串数字&#xff0c;将数字按照下标每次向右移动一位&#xff08;末尾循环到第一位&#xff09;&#xff0c;每次移动玩计算一下下标和数字的乘积且累加。 ①接收…...

25级总分413数学一142专业124东南大学820考研经验电子信息通信工程,真题,大纲,参考书。

我是南京理工大学的本科生&#xff0c;25 考研一战东大&#xff0c;政治 69&#xff0c;英一 78&#xff0c;数一 142&#xff0c;专业课&#xff08;820&#xff09;124&#xff0c;总分 413。我从 3 月正式开始备考&#xff0c;专业课跟着无线电论坛jenny 老师进行学习&#…...

一个基于Django的进销存管理系统Demo实现

第一步&#xff1a;创建 Django 项目 bash 复制 django-admin startproject inventory_system cd inventory_system python manage.py startapp erp 第二步&#xff1a;定义数据模型&#xff08;models.py&#xff09; python 复制 from django.db import models from d…...

【数据结构_6上篇】有关链表的oj题

import java.util.*;/* public class ListNode {int val;ListNode next null;ListNode(int val) {this.val val;} }*/ public class Partition {public ListNode partition(ListNode pHead, int x) {// write code here//1.首先要判断链表是否为空的情况if(pHead null){retu…...

【QT】QWidget 概述与核心属性(API)

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;Qt 目录 一&#xff1a;&#x1f525; 控件概述 &#x1f98b; 控件体系的发展阶段 二&#xff1a;&#x1f525; QWidget 核心属性 &#x1f98b; 核心属性概览&#x1f98b; 用件可用&#xff08…...

微服务篇——SpringCloud

服务注册 Spring Cloud5大组件有哪些&#xff1f; 服务注册和发现是什么意思&#xff1f;Spring Cloud如何实现服务注册发现&#xff1f; nacos与eureka的区别 负载均衡 如何实现负载均衡&#xff1f; Ribbon负载均衡的策略有哪些&#xff1f; 如何自定义负载均衡的策略&…...

如何使用PyCharm自动化测试

如何使用PyCharm自动化测试 1.打开PyCharm右击文件&#xff0c;点击新建项目 按照如图配置&#xff0c;然后点击创建 2.创建好后&#xff0c;点击文件&#xff0c;然后点击设置 按照如图步骤&#xff0c;查看selenium和webdriver-manager是否存在 3.以上都完成后按照如图创…...

记一次某网络安全比赛三阶段webserver应急响应解题过程

0X01 任务说明 0X02 靶机介绍 Webserver&#xff08;Web服务器&#xff09;是一种软件或硬件设备&#xff0c;用于接收、处理并响应来自客户端&#xff08;如浏览器&#xff09;的HTTP请求&#xff0c;提供网页、图片、视频等静态或动态内容&#xff0c;是互联网基础设施的核心…...

c# 新建不重名的唯一文件夹

在源文件夹内创建唯一目标文件夹 string newFolder GetUniqueFolderName(sourceFolder); Directory.CreateDirectory(newFolder); /// <summary>/// 生成唯一文件夹名称&#xff08;格式&#xff1a;新建文件夹、新建文件夹1、新建文件夹2...&#xff09;…...

复现QGIS-MCP教程

由于Claude国内下载不了尝试使用Cursor 下载安装Cursor Cursor - The AI Code Editor 本示例安装的是0.46版本 UV安装 简介 安装 安装成功 配置环境变量 验证 下载代码 git clone gitgithub.com:jjsantos01/qgis_mcp.git QGIS插件安装 文件拷贝 您需要将 qgis_mcp_plu…...

SQL:JOIN 完全指南:从基础到实战应用

JOIN 是 SQL 中最重要也最常用的操作之一,它允许我们从多个表中获取关联数据。本文将全面解析 SQL 中的各种 JOIN 类型,包括 INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL JOIN 以及 CROSS JOIN,并通过实际示例展示它们的应用场景。 一、JOIN 基础概念 1.1 什么是 JOIN JOIN…...

docker部署certimateSSL证书管理自动续签

开源certimate项目地址&#xff1a;https://github.com/usual2970/certimate 官方文档地址&#xff1a;https://docs.certimate.me/docs/introduction 与certbot对比 维度CertbotCertimate安装方式通过包管理器&#xff08;如apt/yum&#xff09;安装支持二进制文件、Docker…...

R语言——直方图

参考资料&#xff1a;学习R 如果我们要研究一个连续变量的分布&#xff0c;直方图是最佳的选择。 1、base绘图 在base中可以使用hist函数绘制直方图&#xff0c;与plot函数一样&#xff0c;它没有data参数&#xff0c;须把数据框置于with中。 data(obama_vs_mccain,package&q…...

第4节:Python编程基础 - Python语法快速回顾

1. Python简介与环境配置 Python是一种高级、解释型、通用的编程语言&#xff0c;由Guido van Rossum于1991年首次发布。 它以简洁明了的语法和强大的功能而闻名&#xff0c;广泛应用于Web开发、数据分析、人工智能、科学计算等领域。 1.1 Python的特点 简单易学&#xff1a;…...