【问题标题】:How to format and print Dash dashboard to PDF?如何将 Dash 仪表板格式化和打印为 PDF?
【发布时间】:2019-08-24 23:15:20
【问题描述】:

我刚刚在 Dash 中创建了一个仪表板,它会自动适合我的电脑显示器,看起来还不错。我现在遇到的问题是我必须制作一种打印为 PDF 的方法。

我看过 Vanguard 示例,它使用外部 CSS 格式化为 A4 大小,然后是打印按钮(使用外部 javascript?)。有没有更“Dash-native”的方式,不需要我学习另一种编程语言(我只知道 Python)?

Dash 用户指南https://dash.plot.ly/ 上似乎没有任何内容,我只找到了这个https://plot.ly/python/pdf-reports/,它描述了如何将单个绘图图形打印为 pdf。

理想情况下,它会像现在在线一样格式化(在线布局),而不会丢失侧面的空间,然后我可以使用可以打印出来的另一种布局(pdf 布局)。

非常感谢任何有关如何进行此操作的链接或建议!

【问题讨论】:

    标签: python pdf plotly-dash


    【解决方案1】:

    如果将绘图保存为 png 图像(图像上最左侧的选项),您可以从 plotly 获取 pdf:

    然后使用该代码将 png 转换为 pdf:

    from PIL import Image
    # Save your plot as png file (option "Download as png" in upper-left corner)
    PNG_FILE = 'horizontal-bar.png'
    PDF_FILE = 'horizontal-bar.pdf'
    
    rgba = Image.open(PNG_FILE)
    rgb = Image.new('RGB', rgba.size, (255, 255, 255))  # white background
    rgb.paste(rgba, mask=rgba.split()[3])               # paste using alpha channel as mask
    rgb.save(PDF_FILE, 'PDF', resolution=100.0)
    

    如果你是个懒人,可以使用库 webkit2png check here how。这使您无需单击“下载为 png”按钮,只需将 html 转换为 png,然后再转换为 pdf。

    【讨论】:

    • 在 PDF 中包含基于光栅的 PNG 与将 SVG 渲染的矢量图像转换为基于矢量的 PDF 不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 2020-06-13
    • 1970-01-01
    相关资源
    最近更新 更多