0

0

html怎么转换为pdf_html文件怎么转pdf格式【转换】

看不見的法師

看不見的法師

发布时间:2026-03-04 21:31:20

|

987人浏览过

|

来源于php中文网

原创

wkhtmltopdf 是基于 webkit 的原生命令行工具,解析快、一致性高,适合服务端批量转换;需加 --encoding utf-8、--enable-local-file-access、--print-media-type 等参数解决乱码、资源加载和打印样式问题,js 渲染内容须预处理为静态 html。

html怎么转换为pdf_html文件怎么转pdf格式【转换】

wkhtmltopdf 命令行直接转,最稳

浏览器渲染 HTML 再截图或打印 PDF 的方式(比如 Puppeteer)容易因 JS 加载时机、字体缺失、页面跳动出错;wkhtmltopdf 是基于 WebKit 的原生命令行工具,不启浏览器,解析快、一致性高,适合批量或服务端转换。

  • 安装后直接运行:wkhtmltopdf input.html output.pdf
  • 中文乱码?加参数:--encoding utf-8 --no-outline --enable-local-file-access
  • 页面内容被截断?默认 A4 宽度太窄,加:--page-width 1200 --page-height 8000(单位 px)
  • 本地图片/样式不加载?必须加 --enable-local-file-access,否则报 QNetworkAccessManager::OperationCanceledError

iframe 或动态渲染的 HTML 转 PDF 失败怎么办

wkhtmltopdf 不执行 JS,遇到 document.write、Vue 渲染、异步请求填充内容,PDF 里就是空的或只有骨架。

  • 先用 Puppeteer 等工具预渲染成静态 HTML:await page.setContent(html, { waitUntil: 'networkidle0' });,再喂给 wkhtmltopdf
  • 不要依赖 window.onloadsetTimeout 延迟生成——wkhtmltopdf 不认这些
  • 若必须用 JS 渲染 PDF,改用 puppeteer.launch({ headless: true }) + page.pdf(),但注意内存和超时控制

CSS 打印样式写不对,PDF 排版全乱

浏览器“另存为 PDF”和 wkhtmltopdf 都走 CSS @media print 规则,但默认不启用,且对 position: fixedtransform、Flex/Grid 支持有限。

Face++旷视
Face++旷视

Face⁺⁺ AI开放平台

下载
  • 强制启用打印样式:--print-media-type 参数必须加,否则 @media print 被忽略
  • 避免 position: fixed 页眉页脚——它在 PDF 里会重复出现在每一页顶部,用 --header-html--footer-html 单独传
  • 表格跨页断裂?加 CSS:table { break-inside: avoid; },但注意旧版 wkhtmltopdf(0.12.x)不支持,需 0.13.0+

Python 脚本调用 wkhtmltopdf 报错:找不到命令或权限拒绝

不是代码问题,是环境没配好。很多 Python 包(如 pdfkit)只是 wkhtmltopdf 的封装,底层仍依赖系统命令。

立即学习前端免费学习笔记(深入)”;

  • 确认已安装:wkhtmltopdf --version 能输出版本号;macOS 用 brew install wkhtmltopdf,Ubuntu 用 apt install wkhtmltopdf
  • Python 中指定路径:config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
  • Linux 容器里报 QXcbConnection: Could not connect to display?加 --xvfb 或换用无头模式:wkhtmltopdf --use-xserver ...(不推荐),更稳妥是升级到 wkhtmltopdf 0.12.6+ 并确保 libxrender1libfontconfig1 已装
字体嵌入、分页逻辑、JavaScript 行为这些细节,不亲眼看到 PDF 输出结果很难判断问题在哪。建议每次只改一个变量:换参数、换 CSS、换 HTML 结构,不然很容易把 base64 图片路径错、file:// 协议限制、CSS 优先级冲突这几个坑混在一起排查。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

192

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

17

2026.02.03

java中break的作用
java中break的作用

本专题整合了java中break的用法教程,阅读专题下面的文章了解更多详细内容。

120

2025.10.15

java break和continue
java break和continue

本专题整合了java break和continue的区别相关内容,阅读专题下面的文章了解更多详细内容。

261

2025.10.24

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

530

2023.06.20

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

514

2023.07.28

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

698

2023.08.03

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

5951

2023.08.17

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

4

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Bootstrap 5教程
Bootstrap 5教程

共46课时 | 3.5万人学习

AngularJS教程
AngularJS教程

共24课时 | 4万人学习

CSS教程
CSS教程

共754课时 | 39.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号