Есть ли способ добавить изображение в байтах в pdf в Python? - PullRequest
0 голосов
/ 01 июня 2018

Я сгенерировал несколько графиков в пандах и сохранил их в потоках BytesIO, а затем хочу добавить их на страницу PDF, а затем отправить файл PDF в виде вложения в электронное письмо:

import matplotlib.pyplot as plt
import io
from fpdf import FPDF

fig = plt.figure()
...
buf = io.BytesIO()
fig.savefig(buf, format='png')

pdf = FPDF()
pdf.add_page()
pdf.image(buf.getvalue(), type='PNG')
buf.close()

Но этоне работает со следующей ошибкой:

Traceback (most recent call last):
  File "XXXX.py", line 166, in send_email
    pdf.image(buf.getvalue(), type='PNG')
  File "/usr/local/lib/python3.6/site-packages/fpdf/fpdf.py", line 150, in wrapper
    return fn(self, *args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/fpdf/fpdf.py", line 971, in image
    info=self._parsepng(name)
  File "/usr/local/lib/python3.6/site-packages/fpdf/fpdf.py", line 1769, in _parsepng
    if name.startswith("http://") or name.startswith("https://"):
TypeError: startswith first arg must be bytes or a tuple of bytes, not str

Я хочу решить эту проблему исключительно в памяти, а не сохранять файлы изображений локально.Кто-нибудь может мне с этим помочь?Большое вам спасибо.

...