Как отформатировать и распечатать приборную панель Dash в PDF? - PullRequest
1 голос
/ 03 апреля 2019

Я только что создал приборную панель в Dash, которая автоматически вписывается в монитор моего компьютера и выглядит наполовину прилично.Теперь у меня проблема с тем, что мне нужно создать способ печати в PDF.

Я видел пример Vanguard, который использует внешний CSS для форматирования в формат A4, а затем кнопку печати (с использованием внешнегоJavaScript?).Есть ли более «родной» Dash-способ, который не требует от меня изучения другого языка программирования (я знаю только Python)?

В руководстве пользователя Dash, похоже, ничего нетhttps://dash.plot.ly/, все, что я нашел, это https://plot.ly/python/pdf-reports/, который описывает, как печатать отдельные сюжетные фигуры в формате PDF.

В идеале, он будет форматироваться, как сейчас онлайн (онлайн-макет)не теряя места по бокам, и тогда я мог бы использовать другой макет (макет PDF), который можно было бы распечатать.

Буду очень признателен за любые ссылки или предложения о том, как это сделать!

1 Ответ

0 голосов
/ 06 апреля 2019

Вы можете получить pdf из plotly, если сохранить график как изображение в формате png (самый левый вариант на изображении): Look at here

А затем с помощью этого кода конвертировать 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 , посмотрите здесь как .Это позволяет вам не нажимать кнопку «Скачать как png», а просто конвертировать из html в png, а затем в pdf.

...