Запишите рисунок в PDF-файл ReportLab, не сохраняя изображение на диск. ⇐ Python
-
Гость
Запишите рисунок в PDF-файл ReportLab, не сохраняя изображение на диск.
Я пытаюсь найти способ записать рисунок matplotlib в PDF-файл с помощью reportlab (версия с открытым исходным кодом 4.0.6). Согласно документу, он должен принимать объект PIL Image, но я попробовал следующее, и он вернул TypeError: ожидаемый объект str, bytes или os.PathLike, а не Image.
из холста импорта reportlab.pdfgen из изображения импорта PIL импортировать numpy как np импортировать matplotlib.pyplot как plt из matplotlib.backends.backend_agg импортировать рисунокCanvas c = холст.Canvas('test-pdf.pdf') рис, топор = plt.subplots() ax.plot([1, 2, 4], [3, 4, 6], '-o') fig_canvas = РисунокCanvas(рис) fig_canvas.draw() img = Image.fromarray(np.asarray(fig_canvas.buffer_rgba())) c.drawImage(img, 0, 0) c.showPage() c.save() Я видел это решение, но оно очень старое и использует другие зависимости. Есть ли способ добиться этого, просто используя PIL, numpy или любые сторонние пакеты Python3?
Я пытаюсь найти способ записать рисунок matplotlib в PDF-файл с помощью reportlab (версия с открытым исходным кодом 4.0.6). Согласно документу, он должен принимать объект PIL Image, но я попробовал следующее, и он вернул TypeError: ожидаемый объект str, bytes или os.PathLike, а не Image.
из холста импорта reportlab.pdfgen из изображения импорта PIL импортировать numpy как np импортировать matplotlib.pyplot как plt из matplotlib.backends.backend_agg импортировать рисунокCanvas c = холст.Canvas('test-pdf.pdf') рис, топор = plt.subplots() ax.plot([1, 2, 4], [3, 4, 6], '-o') fig_canvas = РисунокCanvas(рис) fig_canvas.draw() img = Image.fromarray(np.asarray(fig_canvas.buffer_rgba())) c.drawImage(img, 0, 0) c.showPage() c.save() Я видел это решение, но оно очень старое и использует другие зависимости. Есть ли способ добиться этого, просто используя PIL, numpy или любые сторонние пакеты Python3?
Мобильная версия