You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Jinja2生成的含多图片的HTML文件转为PDF?

解决含多图HTML转PDF的路径问题

针对pdfkit的ProtocolUnknownError问题

  • 这个错误是因为wkhtmltopdf无法识别本地图片的相对路径协议,你需要把图片路径改成绝对路径,或者加上file://前缀。比如在Jinja2渲染时,直接传入图片的绝对路径,或者在模板里处理:
    <img src="file://{{ absolute_image_path }}" alt="图片">
    
    另外要确保wkhtmltopdf的环境变量配置正确,系统能找到它的执行文件。

针对xhtml2pdf的路径无效问题

  • xhtml2pdf解析相对路径时需要明确基准目录,你可以在生成PDF时通过base_url参数指定HTML文件所在的文件夹绝对路径,示例代码如下:
    from xhtml2pdf import pisa
    
    def html_to_pdf(html_content, output_path, base_dir):
        with open(output_path, "wb") as out_file:
            pisa.CreatePDF(
                html_content,
                dest=out_file,
                base_url=f"file://{base_dir}/"
            )
    
  • 也可以直接在Jinja2模板里使用图片的绝对路径,从根源避免相对路径的解析问题。

关于PDF模板的疑问

不需要专门为PDF输出指定新模板,只要你的HTML模板符合PDF渲染工具的规范(比如避免过于复杂的CSS、使用标准HTML标签),调整好图片路径后就能正常转换。

内容的提问来源于stack exchange,提问作者Natasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 01:41:26