在FlaskWeasyPrint中,render\u pdf找不到图像,但它是HTML格式的

2024-04-20 11:28:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试生成一个PDF报告使用Flask WeasyPrint,其中包括报告作者的电子签名。当我呈现转换为PDF的HTML时,签名显示正常,但呈现PDF时显示alt消息。你知道吗

PDF端点看起来像

@mod.route('/report', methods=['GET', 'POST'])
@requires_login(ADMIN_ROLE)
def report():
    form = ReportForm(request.form)

    # Retrieve report from database
    report = Report.query.get(form.id.data)

    html = render_template(
        'reporting/report.html',
        report=report,
        used_scan_names=[s.type.name for s in report.used_scans])

    return render_pdf(
        HTML(string=html),
        download_filename='report-{}-{}.pdf'.format(
            report.session.id, report.session.subject_id),
        automatic_download=True)

其中,为报表作者呈现签名图像的HTML是

<img src="{{ url_for('reporting.signature', reporter_id=report.reporter_id) }}" alt="No Signature Found!">

选择签名图像的端点是

@mod.route('signature/<int:reporter_id>.jpg', methods=['GET'])
@requires_login(ADMIN_ROLE)
def signature(reporter_id):

    reporter = User.query.get(reporter_id)
    return send_file(reporter.signature_path, mimetype='image/jpeg')

奇怪的是,今天早上我做了一段时间,但是在我做出改变之前改变了一些东西,现在我无法找出我的生活中到底出了什么问题。有人能看出我做错了什么吗?你知道吗


Tags: reportformidmodpdfhtml报告reporter