В основном моя задача - создать отчет на python 2 (старый, но хороший python 2.7.14), работающий на безголовой (без дисплея) машине Ubuntu 18.
Плюс - это очень маленькая машина, поэтому хромированное решение без головы или html2pdf (с тяжелой необходимой установкой: wkhtmltopdf) не вариант ... Следовательно, я выбираю xhtml2pdf, который (на бумаге) должен быть моим лучшим вариант.
Кажется, он работает с преобразованием простого файла HTML в PDF. Однако использование следующего кода для преобразования файла html, созданного с помощью plotly, создает пустую страницу 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)
Временный html-файл, созданный plotly
, кажется, работает нормально. Хотя он интерактивный, может, это моя проблема?
plotly.__version__
вы используете? - person rpanai   schedule 21.07.2020