【发布时间】: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