Python HTML->PDF
1. 依赖:
Linux系统
wkhtmltopdf 最好是 (with patched qt) 版本 功能更加完善
下载地址: https://github.com/wkhtmltopdf/wkhtmltopdf/releases/0.12.5/
2. 流程
(1). 生成本地 HTML 文件
(2). 使用 wkhtmltopdf 命令
# 1. 生成html save_file_path = "/static/" file_name = "123456" html_str = "XXXXX" html_file = save_file_path + file_name + ".html" with open(file=html_file, mode="wb") as f: f.write(html_str) # 2. wkhtmltopdf 生成PDF pdf_file = save_file_path + file_name + ".pdf" cmd = "wkhtmltopdf --enable-local-file-access --javascript-delay 3000" \ " --footer-center '第[page]页 / 共[topage]页' --image-quality 200 -L 30 -R 30 -T 20 -B 20 %s %s" % ( html_file, pdf_file) try: os.system(cmd) if os.path.isfile(pdf_file): os.remove(html_file) except Exception as e: logging.error(e)
命令讲解:
1. --enable-local-file-access 允许访问 HTML 里面的静态文件 如图片 2. --javascript-delay 3000 等待 HTML 内 JS 代码执行 3秒后 再渲染 PDF 3. --footer-center '第[page]页 / 共[topage]页' PDF文件 底部中间 添加分页显示 4. -L 30 -R 30 -T 20 -B 20 内容左边距 右边距 上边距 下边距
3. 乱码问题
未安装中文字体库
# 查看目前已安装的字体 fc-list # 创建字体文件目录 mkdir /usr/share/fonts/zh_CN # 下载所需字体msyh.ttf # 把下载的字体文件移至目录下 mv msyh.ttf /usr/share/fonts/zh_CN # 刷新字体缓存 fc-cache -fv
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?