【问题标题】:Exporting chart drawn in plotly to pdf将绘制的图表导出为pdf
【发布时间】:2020-07-21 17:54:11
【问题描述】:

基本上,我的任务是在无头(无显示)Ubuntu 18 机器上运行的 python 2(一个老式但很好的 python 2.7.14)中创建一个报告。

Plus - 这是一台非常小的机器,所以无头 chrome 解决方案或 html2pdf(需要大量安装:wkhtmltopdf)不是一个选项......因此,我要选择 xhtml2pdf 应该(在纸上)是我最好的选择。

将简单的 html 文件转换为 pdf 似乎确实有效。但是,使用以下代码转换plotly创建的html文件会产生一个空页面pdf(不是空文件,是空A4页面):

import plotly.graph_objects as go
import plotly
from xhtml2pdf import pisa 

labels = ['Oxygen','Hydrogen','Carbon_Dioxide','Nitrogen']
values = [4500, 2500, 1053, 500]
fig = go.Figure(data=[go.Pie(labels=labels, values=values, hole=.3)])


html_filename = '/home/cpmuser/temp.html'
plotly.offline.plot(fig, filename = html_filename, auto_open=False)
source_file = open(html_filename, "rb")
source_html = source_file.read(1000000000)
print (len(source_html))
source_file.close()
output_filename = "/home/cpmuser/report.pdf"
result_file = open(output_filename, "wb")

pisa_status = pisa.CreatePDF(source_html, dest=result_file)
result_file.flush()
result_file.close()

print (pisa_status.err)

plotly 创建的临时 html 文件似乎工作正常。虽然它是交互式的,所以也许这是我的问题?

【问题讨论】:

  • 是交互式还是非交互式?你介意告诉你使用的是哪个plotly.__version__吗?
  • plotly.__version__ == 4.9.0 我发现了一个标志,它应该使它成为非交互式的,但我认为这就是 plotly 的整个想法是交互式的。我可能应该退回到用更基本的东西画画……

标签: plotly plotly-python xhtml2pdf


【解决方案1】:

在查看了许多其他软件包之后,似乎已经内置了它(使用另一个项目:kaleido)-它只是将其称为“导出到图像”,这导致我得出错误的结论,它将类似于 PNG/JPEG 没有文本的选择(在光栅/矢量图像/pdf的其他差异中)。它可以将其导出为 pdf 格式:) 文本选择 + 矢量图像。轻松愉快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-13
    • 2018-01-27
    相关资源
    最近更新 更多