I stumbled on this code to generate a PDF with a plot in it without saving the plot as a file.
I am now trying to scale the svg before adding it to the PDF so it fits the page (without changing the figsize argument through matplotlib).
from reportlab.graphics import renderPDFfrom reportlab.lib.pagesizes import LETTERfrom reportlab.pdfgen.canvas import Canvasfrom io import BytesIOfrom svglib.svglib import svg2rlgdef one_page_pdf(file_name, figs, text="Default"): canvas = Canvas(filename=file_name, pagesize=(LETTER[1], LETTER[0])) img_data = BytesIO() figs.savefig(img_data, format="svg") # figs.set_size_inches(6, 6) img_data.seek(0) drawing = svg2rlg(img_data) renderPDF.draw(drawing, canvas, 10, 100) canvas.drawString(10, 50, text) canvas.showPage() canvas.save()
How can I do it properly?
I tried changing the size of the svg using svgutils but this didn't go well.