首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在weasyprint中未应用引导CSS

在weasyprint中未应用引导CSS
EN

Stack Overflow用户
提问于 2018-03-27 00:35:08
回答 2查看 4.2K关注 0票数 4

我已经制作了一个flask应用程序,它从带有weasyprint的html生成.pdf,并将其作为附件发送。但是显然没有应用bootstrap 4CSS。我找不到解决办法。它与pdfkit工作得很好,但我需要weasyprint,因为pythonanywhere.com不支持pdfkit。

我已经尝试链接bootstrap,在我的html中使用bootstrap css作为文件,但没有区别。

这是我的python部分,它生成并发送pdf。

代码语言:javascript
复制
@app.route('/pdf_send', methods=('GET', 'POST'))
@login_required
def pdf_send():

    rendered = render_template(
    'pdf_send2.html', 
    name=name_g, 
    surname=surname_g,
    email=email_g,
    address=address_g,
    invoice_no=invoice_no_g,
    dict_g=dict_g,
    bendra_suma_g = ('%.2f' % round(float(bendra_suma_g[0]), 2)),
    send=send_g,
    today=today_g
    )

    css_file = ('static/bootstrap.css')
    filename = 'SF-' + invoice_no_g +'.pdf'
    html = HTML(string=rendered)
    css = CSS(filename=css_file)
    html.write_pdf(filename, stylesheets=[css])
    send_email(filename, email_g)

    return redirect(url_for('index'))
EN

回答 2

Stack Overflow用户

发布于 2019-06-27 03:17:59

我知道这是一个老帖子,但我在寻找相同问题的答案时偶然发现了它,所以我添加了我的变通方法,以防它对其他人有帮助。我首先要指出的是,尽管Bootstrap确实可以工作,但它实际上并不是用来打印的,而且weasyprint会忽略@media查询中的任何内容,所以无论如何你都需要添加大量的css以使其正确呈现,所以这可能是不值得的。

使用原始问题中的代码,如果您将引导cdn css添加到stylesheets列表,它将呈现:

代码语言:javascript
复制
html = HTML(string=rendered)
css = CSS(filename=css_file)
html.write_pdf(filename, stylesheets=[css, "https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"])

然而,考虑到Bootstrap渲染的问题,我发现这个技巧在应用字体时非常有用。

票数 2
EN

Stack Overflow用户

发布于 2018-04-10 18:59:12

weasyprint在bootstrap中不能很好地工作。

为了清楚起见,这里是参考Link to Github site

您编写的任何引导程序类都将被WeasyPrint忽略。

你可以看到“忽略...”WeasyPrint错误日志中的消息(如果已初始化)。

所以最好使用CSS来打印页面

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49496398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档