【问题标题】:WeasyPrint Not Inserting Images From Jinja2 For PDF ReportWeasyPrint 不从 Jinja2 插入图像以获取 PDF 报告
【发布时间】:2019-11-08 21:34:19
【问题描述】:

我正在尝试使用 Jinja2 和 Weasyprint 从 pandas 数据框创建报告。我遇到了 WeasyPrint 无法正确显示图像的问题。图像是静态的并加载在一个文件夹中。

我使用 xhtml2pdf 进行了这项工作。该解决方案正在运行并生成我想要的报告。但是样式不如 WeasyPrint 准确。所以我想继续使用 Wea​​syPrint。

import pandas as pd
from datetime import date
import jinja2, os
#from xhtml2pdf import pisa
from weasyprint import HTML
import matplotlib.pyplot as plt
    t.plot.pie(figsize=(5, 5), label="", rot=90, legend=True)
    extensionPieChart = f"{imagesFolder}\\extensionPieChart.png"
    plt.savefig(extensionPieChart)
    t = t.reset_index()
    html = jinja2.Environment(loader=jinja2.FileSystemLoader(searchpath='')). \
            get_template(f'html_template.html'). \
            render(
                date=date.today().strftime('%d, %b %Y'),
                df=dfTemp.head(), 
                name = user,
                pie_chart = extensionPieChart,
                totals = t,
                companyImage = companyImage)
    print('Converting HTML to PDF')
    HTML(string=html).write_pdf(f'{reportsFolder}\\{user} Report.pdf')

这是我的 HTML 模板中的 HTML 代码

<td style="text-align:right"><img src="{{ pie_chart }}">

查看Jinja2生成的代码,文件路径是正确的:

<td style="text-align:right"><img src="C:\Users\jg757fe\Desktop\Reports - Copy\Images\extensionPieChart.png">

我希望图像能显示出来,但它没有被插入到 PDF 中。 任何帮助将不胜感激

【问题讨论】:

    标签: pdf report jinja2 python-3.7 weasyprint


    【解决方案1】:

    我需要做的就是将file:\\ 添加到我的 HTML 模板中:

    原来(不工作)

    <td style="text-align:right"><img src="{{ pie_chart }}">
    

    工作

    <td style="text-align:right"><img src="file:\\{{ pie_chart }}
    

    简单但不是最明显的解决方案

    【讨论】:

      猜你喜欢
      • 2019-02-05
      • 2019-12-04
      • 1970-01-01
      • 2021-09-18
      • 2016-06-21
      • 2012-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多