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

【URL 转换为PDF】HTML转换为PDF

1、方法1 pdfkit

安装依赖

# 安装 wkhtmltopdf(系统级)
# Ubuntu/Debian
sudo apt install wkhtmltopdf# macOS
brew install wkhtmltopdf# Windows 下载安装:https://wkhtmltopdf.org/downloads.html# 安装 Python 库
pip install pdfkit
import pdfkit# 将网页转为 PDF
def url_to_pdf(url, output_path):try:pdfkit.from_url(url, output_path)print(f"PDF 已保存为: {output_path}")except Exception as e:print(f"转换失败: {e}")# 示例调用(替换为你的链接)
url_to_pdf("https://etcnew.sdut.edu.cn/meol/common/script/preview/download_preview.jsp?fileid=15400633&resid=1451996&lid=65791&preview=preview","水泥工艺学-第五章硅酸盐水泥熟料的煅烧.pdf"
)

方法2:pyppeteer (很高级)适用于JavaScript渲染的网页(如Vue、React页面)。

import asyncio
from pyppeteer import launchasync def html_to_pdf(url, output_path):browser = await launch(headless=True)page = await browser.newPage()await page.goto(url, {'waitUntil': 'networkidle2'})await page.pdf({'path': output_path, 'format': 'A4', 'printBackground': True})await browser.close()# 使用示例
asyncio.run(html_to_pdf("https://example.com", "output.pdf"))

方法3:playwright (最高级,最稳定版本)

# 更新 pip
python3 -m pip install -U pip# 安装 Playwright Python 库
pip install playwright# 下载并安装所需的浏览器(Chromium、Firefox、WebKit)
playwright installplaywright --version
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=True)page = browser.new_page()page.goto("https://example.com")page.pdf(path="page.pdf", format="A4")browser.close()
http://www.dtcms.com/a/284219.html

相关文章:

  • 【哈希映射实现的并集查找】P5962 [BalticOI 2004] ships 船|普及+
  • 【析精】Landmark-Guided Subgoal Generation in Hierarchical Reinforcement Learning
  • 【加解密与C】Base系列(六)Base100
  • 基于在线地图的路径规划测评对比-综合对比城区、农村及城乡结合处的导航
  • JavaScript进阶篇——第八章 原型链、深浅拷贝与原型继承全解析
  • 20250717 Ubuntu 挂载远程 Windows 服务器上的硬盘
  • Linux C 进程基本操作
  • 冒泡排序、选择排序、插入排序、快速排序
  • NLP——迁移学习
  • 【unity组件介绍】URP Decal Projector贴花投影器,将特定材质(贴花)投影到场景中的其他对象上。
  • RabbitMQ深度解析:从核心概念到实战应用
  • 【Android】EditText使用和监听
  • 聚观早报 | 英伟达股价再创新高;中国联通eSIM手机业务开通上线;中国AI加速出海 阿里云提供全栈能力支持
  • Linux之Zabbix分布式监控篇(二)
  • Flutter基础(前端教程①②-序列帧动画)
  • element-plus——图标推荐
  • 【JAVA新特性】Java 8 新特性实战
  • 网络安全威胁下的企业困境与破局技术实践
  • string + 栈 bitset 可达性统计(拓扑排序)
  • 浅探C语言的回调函数(Callback Function)
  • CD54.【C++ Dev】vector和list的反向迭代器的实现
  • 大语言模型Gemini Deep Research 全流程解读+使用攻略
  • uniapp云打包安卓
  • ADVB时序图
  • Spring Boot基于AOP的本地/远程调用动态路由实践
  • 如何在银河麒麟桌面系统中启用 sudo 密码的星号反馈
  • QT之openGL使用(一)
  • 燕之屋打造多元化产品组合,引领行业迈向高质量发展新里程
  • 心通达OA知识管理平台:高效解决单位知识管理难题
  • 点晴模切ERP帮忙模切行业向数智化管理转型