告别付费!PDF/HTML转高清长图,100%免费开源,600DPI超清画质!
告别付费PDF/HTML转高清长图100%免费开源600DPI超清画质痛点终结者网上随便一搜“PDF转长图”要么收费单次几十块要么免费只给一页且模糊如马赛克要么限制次数……今天我给你们一套永久免费、无任何限制、真正高清的Python工具一键将PDF或HTML转为600 DPI无损长图所有页面完美拼接文字清晰锐利支持超长文档代码全开源拿走即用 为什么你需要这个工具业务场景设计师交付作品集需要将多页PDF生成一张完整长图用于社交分享学生党整理笔记PDF扫描件转长图方便阅读运营人员需将长网页保存为图片用于汇报或排版。现有服务坑爹ilovepdf、smallpdf等在线工具免费版压缩画质、加水印高清需付费某些软件只能转第一页后面要VIP网上的Python教程要么依赖popplerWindows安装地狱要么输出分辨率低得可怜。今天我要一次性解决所有问题✨ 我们的方案有何不同特性本工具在线工具/其他脚本画质600 DPI (超高清)通常72-150 DPI模糊付费完全免费无次数限制按次付费或月度订阅输入格式支持HTML和PDF通常只支持PDF外部依赖无需安装popplerPDF用PyMuPDF很多需poppler配置复杂长图拼接自动拼接所有页面为一张垂直长图有些只提供分页下载本地运行完全离线数据不上传需上传至服务器隐私风险 核心技术原理PDF转图片使用PyMuPDF (fitz)——直接调用MuPDF渲染引擎无需额外安装任何外部二进制文件轻松实现任意DPI输出。HTML转图片采用Playwright无头浏览器模拟高清屏device_scale_factor3截取完整网页完美保留CSS样式和字体。长图拼接利用Pillow将所有页面的图像垂直无缝拼接生成一张超长PNG/JPEG。智能文件选择优先弹出图形化文件选择对话框Tkinter若系统无GUI则自动降级为命令行输入兼顾服务器和桌面环境。 环境配置超简单1. 安装Python依赖pip install playwright pillow PyMuPDF playwright install chromium # 仅HTML转图需要注意不需要安装pdf2image更不用折腾poppler2. 运行方式将下方完整代码保存为pdf_html_to_longimage.py在终端执行python pdf_html_to_longimage.py然后会弹出文件选择框或提示输入路径选择你的HTML或PDF文件等待片刻即可在相同目录下得到原文件名_long.jpg的高清长图 完整代码复制即用import os import sys import subprocess from PIL import Image from playwright.sync_api import sync_playwright, Error as PlaywrightError import fitz # PyMuPDF # ---------- 智能文件选择优先 GUI ---------- def select_file_gui(): try: import tkinter as tk from tkinter import filedialog root tk.Tk() root.withdraw() file_path filedialog.askopenfilename( title请选择 HTML 或 PDF 文件, filetypes[ (所有支持的文件, *.html *.htm *.pdf), (HTML 文件, *.html *.htm), (PDF 文件, *.pdf), (所有文件, *.*) ] ) return file_path if file_path else None except Exception: return None def select_file_cli(): print(未检测到图形界面支持请手动输入文件路径。) path input(请拖入或输入文件路径支持 HTML 或 PDF: ).strip().strip().strip() return path if path else None def get_file_path(): path select_file_gui() if path: return path return select_file_cli() # ---------- 确保 Playwright Chromium 已安装 ---------- def ensure_chromium_installed(): try: with sync_playwright() as p: browser p.chromium.launch() browser.close() print(✅ Chromium 已就绪。) except PlaywrightError: print(⚠️ 正在自动下载 Chromium...) try: subprocess.run([playwright, install, chromium], checkTrue) print(✅ Chromium 安装成功) except subprocess.CalledProcessError: print(❌ 安装失败请手动运行: playwright install chromium) raise # ---------- HTML 转高清长图 ---------- def html_to_long_image(html_source, output_path, dpi300, scale_factor3): 将 HTML 转换为一张高清长图全页截图 :param html_source: HTML 字符串或本地 .html 文件路径 :param output_path: 输出图片路径.jpg :param dpi: 目标 DPI :param scale_factor: 渲染缩放倍数越高越清晰 ensure_chromium_installed() temp_path temp_screenshot.png try: with sync_playwright() as p: browser p.chromium.launch() context browser.new_context( viewport{width: 1920, height: 1080}, device_scale_factorscale_factor ) page context.new_page() if os.path.isfile(html_source): page.goto(ffile:///{os.path.abspath(html_source).replace(os.sep, /)}) else: page.set_content(html_source) page.screenshot(pathtemp_path, typepng, full_pageTrue) browser.close() with Image.open(temp_path) as img: rgb img.convert(RGB) rgb.save(output_path, JPEG, dpi(dpi, dpi), quality98, subsampling0) print(f HTML 长图保存至: {output_path}) finally: if os.path.exists(temp_path): os.remove(temp_path) # ---------- PDF 转高清长图拼接所有页面 ---------- def pdf_to_long_image(pdf_path, output_path, dpi300): 将 PDF 的所有页面转换为一张垂直拼接的长图 if not os.path.exists(pdf_path): print(f❌ PDF 文件不存在: {pdf_path}) return print(f 正在解析 PDF: {pdf_path}) doc fitz.open(pdf_path) total_pages len(doc) if total_pages 0: print(❌ PDF 为空。) doc.close() return print(f 共 {total_pages} 页开始渲染...) images [] total_height 0 max_width 0 for page_num in range(total_pages): page doc[page_num] mat fitz.Matrix(dpi / 72, dpi / 72) pix page.get_pixmap(matrixmat, colorspacergb) img Image.frombytes(RGB, [pix.width, pix.height], pix.samples) images.append(img) total_height pix.height if pix.width max_width: max_width pix.width print(f ✅ 第 {page_num1}/{total_pages} 页渲染完成) doc.close() print(f️ 正在拼接 {len(images)} 页为长图...) long_image Image.new(RGB, (max_width, total_height), colorwhite) y_offset 0 for img in images: long_image.paste(img, (0, y_offset)) y_offset img.height long_image.save(output_path, JPEG, dpi(dpi, dpi), quality98, subsampling0) print(f PDF 长图保存至: {output_path}) # ---------- 主程序 ---------- if __name__ __main__: file_path get_file_path() if not file_path: print(⚠️ 未选择文件程序退出。) sys.exit(0) if not os.path.exists(file_path): print(f❌ 文件不存在: {file_path}) sys.exit(1) ext os.path.splitext(file_path)[1].lower() output_dir os.path.dirname(file_path) or . output_filename os.path.splitext(os.path.basename(file_path))[0] _long.jpg output_path os.path.join(output_dir, output_filename) if ext in [.html, .htm]: html_to_long_image(file_path, output_path, dpi300, scale_factor3) elif ext .pdf: pdf_to_long_image(file_path, output_path, dpi300) else: print(f❌ 不支持的文件类型: {ext}) sys.exit(1) 使用教程图文结合1. 运行脚本在命令行执行python pdf_html_to_longimage.py。你会看到一个文件选择窗口Windows/macOS或文字提示Linux无图形界面。截图示意此处为文字描述弹窗显示“请选择 HTML 或 PDF 文件”过滤器支持.html、.htm、.pdf。2. 选择文件选中你的目标文件比如report.pdf或index.html点击“打开”。3. 自动转换控制台实时输出进度 正在解析 PDF: D:/docs/report.pdf 共 15 页开始渲染... ✅ 第 1/15 页渲染完成 ✅ 第 2/15 页渲染完成 ... ✅ 第 15/15 页渲染完成 ️ 正在拼接 15 页为长图... PDF 长图保存至: D:/docs/report_long.jpg4. 获得长图在源文件同目录下生成了report_long.jpg打开查看所有页面无缝衔接文字清晰如印刷 效果对比vs 知名在线工具工具分辨率是否收费隐私风险处理速度本工具600 DPI免费完全离线快本地渲染smallpdf150 DPI免费版付费解锁高清上传云端依赖网络ilovepdf压缩画质付费去水印上传云端依赖网络某国产软件仅第一页免费按页收费上传云端一般 高级定制参数超乎想象的定制版本https://mp.csdn.net/mp_blog/creation/editor?spm1011.2124.3001.6217orhttps://blog.csdn.net/weixin_68067302/article/details/163267909?sharetypeblogdetailsharerId163267909sharereferPCsharesourceweixin_68067302spm1011.2480.3001.8118 为什么值得收藏永久免费无付费墙无次数限制。开源可控代码全部给你可随意修改、集成进自己的项目。跨平台Windows/macOS/Linux 均可运行。隐私安全所有处理在本地完成无需上传敏感文档。技术先进利用浏览器原生渲染和PDF直接光栅化效果远超截图工具。 常见问题Q运行时报错 “No module named fitz”A请执行pip install PyMuPDF注意是PyMuPDF不是fitz导入时用fitz。QHTML转图时页面内容显示不全A因为Playwright默认视口宽1920如果内容超宽可以调整viewport参数或者用page.set_viewport_size()动态设置。Q生成的图片文件太大怎么办A可降低quality参数默认98改为90左右或降低DPI。Q能否支持其他格式如WordA目前不支持但可先用libreoffice将Word转PDF再使用本工具。 最后的话互联网上充满了“免费”陷阱但这个工具我亲自写了承诺永久免费且源码公开。如果你觉得有用欢迎收藏或点赞或转发给需要的朋友。让技术回归纯粹不再为转个长图而掏腰包代码拿走不谢有任何问题请在评论区留言我会尽力解答。本文代码已在Python 3.8测试通过依赖版本playwright1.40.0, Pillow10.1.0, PyMuPDF1.23.8

相关新闻

如何用自动化脚本让B站抽奖中奖率提升300%:终极指南

如何用自动化脚本让B站抽奖中奖率提升300%:终极指南

如何用自动化脚本让B站抽奖中奖率提升300%:终极指南 【免费下载链接】LotteryAutoScript Bili动态抽奖助手 项目地址: https://gitcode.com/gh_mirrors/lo/LotteryAutoScript 还在为错过B站热门抽奖而烦恼吗?每天手动转发几十条动态却总是与大奖擦…

2026/7/29 17:31:39阅读更多 →
d2dx:暗黑破坏神2现代化的终极解决方案

d2dx:暗黑破坏神2现代化的终极解决方案

d2dx:暗黑破坏神2现代化的终极解决方案 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 还在为经典《暗黑破坏神2…

2026/7/29 17:29:39阅读更多 →
硬问题在一元自指本体论下完整重述,以及尚存的开放问题

硬问题在一元自指本体论下完整重述,以及尚存的开放问题

硬问题在一元自指本体论下完整重述,以及尚存的开放问题 作者:方见华 单位:世毫九实验室 摘要 本文基于世毫(SH9)自指宇宙学框架下的一元自指本体论,将意识研究的“硬问题”进行彻底的范式转化重述&#xff…

2026/7/29 17:29:39阅读更多 →
抖音无水印下载终极教程:免费获取高清视频的完整解决方案

抖音无水印下载终极教程:免费获取高清视频的完整解决方案

抖音无水印下载终极教程:免费获取高清视频的完整解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…

2026/7/29 18:40:13阅读更多 →
如何用Pixelle-Video在3分钟内制作专业级短视频?AI全自动引擎完全指南

如何用Pixelle-Video在3分钟内制作专业级短视频?AI全自动引擎完全指南

如何用Pixelle-Video在3分钟内制作专业级短视频?AI全自动引擎完全指南 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video Pixel…

2026/7/29 18:40:13阅读更多 →
揭秘Ninjabrain-Bot核心算法:贝叶斯推断如何革新末地城定位

揭秘Ninjabrain-Bot核心算法:贝叶斯推断如何革新末地城定位

揭秘Ninjabrain-Bot核心算法:贝叶斯推断如何革新末地城定位 【免费下载链接】Ninjabrain-Bot Accurate stronghold calculator for Minecraft speedrunning. 项目地址: https://gitcode.com/gh_mirrors/ni/Ninjabrain-Bot Ninjabrain-Bot是一款为Minecraft速…

2026/7/29 18:40:13阅读更多 →
浅谈智慧路灯APP开发有哪些好处

浅谈智慧路灯APP开发有哪些好处

智慧路灯是通过应用先进、高效、可靠的电力线载波通信技术和无线GPRS/CDMA 通信技术等,实现对路灯的远程集中控制与管理。它可以根据车流量自动调节亮度、远程照明控制、故障主动报警、灯具线缆防盗、远程抄表等功能,能够大幅节省电力资源,提…

2026/7/29 18:40:13阅读更多 →
G-Helper深度解析:华硕笔记本轻量化控制工具的技术实现与最佳实践

G-Helper深度解析:华硕笔记本轻量化控制工具的技术实现与最佳实践

G-Helper深度解析:华硕笔记本轻量化控制工具的技术实现与最佳实践 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, …

2026/7/29 18:40:13阅读更多 →
从理论到实践:Geotorch约束优化的数学原理与代码实现

从理论到实践:Geotorch约束优化的数学原理与代码实现

从理论到实践:Geotorch约束优化的数学原理与代码实现 【免费下载链接】geotorch Constrained optimization toolkit for PyTorch 项目地址: https://gitcode.com/gh_mirrors/ge/geotorch Geotorch是一个专为PyTorch设计的约束优化工具包,它提供了…

2026/7/29 18:38:13阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/29 9:47:45阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/29 7:00:19阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/29 7:58:51阅读更多 →
28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“!

28. Agent 执行到一半想暂停?用 interrupt 给它设个“关卡“! 在构建复杂的 Agent 系统时,我们经常会遇到这样的场景:Agent 正在执行一个多步骤的任务,比如“下单购买商品”,但执行到一半时,我们…

2026/7/29 0:01:46阅读更多 →
自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

自律同行,突破无界!NANK南卡正式官宣曾舜晞成为品牌代言人

近日,国际专注开放式技术研发的声学品牌Nank南卡,正式官宣实力艺人曾舜晞担任品牌代言人。消息一经发出便轰动全网。为什么耳机品牌不选择流量明星、老牌歌手?而且是选择曾舜晞?让我们一起来探索一下!比起短期的流量&a…

2026/7/29 0:01:46阅读更多 →
【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:01:46阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/28 20:22:24阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/29 4:31:51阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/29 14:26:42阅读更多 →