How to change text/font color in reportlab.pdfgen

后端 未结 3 592
执念已碎
执念已碎 2021-02-01 19:02

I want to use a different color of text in my auto-generated PDF.

According to the reportlab docs all I need to do is:

self.canvas.setFillColorRGB(255,0,         


        
3条回答
  •  星月不相逢
    2021-02-01 19:11

    If you copy and paste the code in User Guide Section 2. You'll get a fancy coloured rectangle with a coloured Text within it. Probably the approach is not that clear in the user guide, I'd spent some time playing with it and I finally know how it works.

    You need to imagine yourself drawing a canvas. You need to do all the setup before you draw. Below is an example I prepared to show better how to style a text, draw a line, and draw a rectangle, all with the ability to put colour on them.

    from reportlab.pdfgen import canvas
    
    def hello(c):
        from reportlab.lib.units import inch
    
        #First Example
        c.setFillColorRGB(1,0,0) #choose your font colour
        c.setFont("Helvetica", 30) #choose your font type and font size
        c.drawString(100,100,"Hello World") # write your text
    
        #Second Example
        c.setStrokeColorRGB(0,1,0.3) #choose your line color
        c.line(2,2,2*inch,2*inch)
    
        #Third Example
        c.setFillColorRGB(1,1,0) #choose fill colour
        c.rect(4*inch,4*inch,2*inch,3*inch, fill=1) #draw rectangle
    
    c = canvas.Canvas("hello.pdf")
    
    hello(c)
    c.showPage()
    c.save()
    

提交回复
热议问题