首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将用Dash编写的网站显示为静态PDF (Python)?

如何将用Dash编写的网站显示为静态PDF (Python)?
EN

Stack Overflow用户
提问于 2018-10-15 15:40:26
回答 5查看 15.4K关注 0票数 16

我想导出的网站,我已经在冲刺成一个静态PDF。下面是我的站点的代码(它只是一个包含3列的图表):

代码语言:javascript
运行
复制
import dash
import dash_core_components as dcc
import dash_html_components as html
import pdfkit
from flask import Flask, render_template, make_response

app = dash.Dash()
app.layout = html.Div(
                className="three columns",
                children=html.Div([
                    dcc.Graph(
                        id='right-top-graph',
                        figure={
                            'data': [{
                                'x': [1, 2, 3],
                                'y': [3, 1, 2],
                                'type': 'bar'
                            }],
                            'layout': {
                                'height': 400,
                                'margin': {'l': 10, 'b': 20, 't': 0, 'r': 0}
                            }
                        }
                    ),


                ])
            )

app.css.append_css({
    'external_url': 'https://codepen.io/chriddyp/pen/bWLwgP.css'
})

if __name__ == '__main__':
    app.run_server(debug=True)

我尝试通过将此代码添加到我的脚本中来使用pdfkit,但是它没有工作(收到一个错误,告诉我render_template()接受了一个位置参数,但给出了两个位置参数):

代码语言:javascript
运行
复制
rendered = render_template('pdf_template.html',app)
pdf = pdfkit.from_string(rendered, False)
response = make_response(pdf)
response.headers['Content-Type'] = 'application/pdf'
response.headers['Content-Disposition'] = 'attachment; filename=output.pdf'

有没有人知道我如何将我的短跑站点转换成PDF?

提前谢谢。

EN

回答 5

Stack Overflow用户

发布于 2018-10-18 17:16:44

您可以使用任何浏览器的打印功能(通常是控制+ p),并将其保存为PDF,如果您正在寻找的是静态PDF文件。

如果您需要更多增强的功能,您可以添加一个打印到PDF按钮,就像在一个破折号示例。它使用js文件来调用浏览器打印功能,请参阅更详细。这样,您还可以使用CSS来定义PDF输出的外观。

使用python文件直接生成pdf的问题是,dash只创建布局树的JSON表示,然后组装在浏览器本身中,参见更多

票数 3
EN

Stack Overflow用户

发布于 2018-10-24 20:21:48

您可以通过以下方式使用pdfkit

代码语言:javascript
运行
复制
import pdfkit
pdfkit.from_url('http://local.dash.site', 'out.pdf')

与您发布的内容有很大不同的是,您可以使用本地web服务器来呈现页面。

作为替代,您还可以使用https://wkhtmltopdf.org/ --这是pdfkit下面的lib。

票数 2
EN

Stack Overflow用户

发布于 2018-10-19 21:27:43

您可以使用以下链接中的说明创建pdf:http://flask.pocoo.org/snippets/68/

render_template只接受一个位置参数,其余的必须是关键字参数。

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

https://stackoverflow.com/questions/52820266

复制
相关文章

相似问题

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