Weasyprint未从Jinja2插入PDF报告中的图像



我正在尝试使用jinja2和weasyprint从pandas dataframe创建报告。我正在遇到一个问题,即生病贴片无法正确显示图像。这些图像是静态的,并加载在文件夹中。

我与XHTML2PDF一起工作。该解决方案正在起作用并生成我想要的报告。但是样式不如weasyprint精确。因此,我想继续使用Weasyprint。

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生成的代码时,filepath是正确的:

<td style="text-align:right"><img src="C:Usersjg757feDesktopReports - CopyImagesextensionPieChart.png">

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

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

orignally(不工作(

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

工作

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

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

最新更新