usar tutorial libreria instalar español ejemplos create como python pdf reportlab

python - tutorial - reportlab text to pdf



Python-Reportlabs: ¿guardar 2 gráficos diferentes en 2 páginas diferentes? (1)

Haz un lienzo y renderiza tus dibujos en él:

from reportlab.pdfgen import canvas from reportlab.graphics import renderPDF c = canvas.Canvas(''hi.pdf'') # your drawing # drawing = Drawing(400, 200) x, y = 0, 0 # coordinates (from left bottom) renderPDF.draw(drawing, c, x, y, showBoundary=False) c.showPage() # to end a page and start a new one # extra pages content c.save() # to save :D the whole document

Espero eso ayude :)

Tengo el siguiente código donde estoy dibujando un gráfico de barras verticales y un gráfico de líneas también dentro de un PDF.

¿Cómo guardo estos 2 gráficos en 2 páginas diferentes del PDF? Vi que se puede hacer usando -

c = canvas.Canvas("hello.pdf") hello(c) c.showPage() c.save()

Pero, en lugar de usar Canvas, estoy usando el objeto Drawing en el que el método showPage() no existe.

¿Cómo guardo los 2 gráficos en 2 páginas diferentes del PDF? A la derecha, el segundo gráfico (gráfico de líneas) se solapa con el primer gráfico (gráfico de barras verticales), lo que obstaculiza el gráfico de barras.

Aquí está mi código.

from reportlab.graphics.shapes import Drawing from reportlab.graphics.charts.barcharts import VerticalBarChart drawing = Drawing(400, 200) data = [ (13, 5, 20, 22, 37, 45, 19, 4), (14, 6, 21, 23, 38, 46, 20, 5) ] bc = VerticalBarChart() bc.x = 50 bc.y = 50 bc.height = 125 bc.width = 300 bc.data = data #bc.strokeColor = colors.black bc.valueAxis.valueMin = 0 bc.valueAxis.valueMax = 50 bc.valueAxis.valueStep = 10 bc.categoryAxis.labels.boxAnchor = ''ne'' bc.categoryAxis.labels.dx = 8 bc.categoryAxis.labels.dy = -2 bc.categoryAxis.labels.angle = 30 bc.categoryAxis.categoryNames = [''Jan-99'',''Feb-99'',''Mar-99'', ''Apr-99'',''May-99'',''Jun-99'',''Jul-99'',''Aug-99''] drawing.add(bc) drawing.save() from reportlab.graphics.charts.lineplots import LinePlot from reportlab.graphics.widgets.markers import makeMarker drawing = Drawing(400, 200) data = [ ((1,1), (2,2), (2.5,1), (3,3), (4,5)), ((1,2), (2,3), (2.5,2), (3.5,5), (4,6)) ] lp = LinePlot() lp.x = 50 lp.y = 50 lp.height = 125 lp.width = 300 lp.data = data lp.joinedLines = 1 lp.lines[0].symbol = makeMarker(''FilledCircle'') lp.lines[1].symbol = makeMarker(''Circle'') lp.lineLabelFormat = ''%2.0f'' #lp.strokeColor = colors.black lp.xValueAxis.valueMin = 0 lp.xValueAxis.valueMax = 5 lp.xValueAxis.valueSteps = [1, 2, 2.5, 3, 4, 5] lp.xValueAxis.labelTextFormat = ''%2.1f'' lp.yValueAxis.valueMin = 0 lp.yValueAxis.valueMax = 7 lp.yValueAxis.valueSteps = [1, 2, 3, 5, 6] drawing.add(lp) drawing.save() drawing.save(formats=[''pdf''],outDir=''.'',fnRoot=None)