Se si copia e incolla il codice nella sezione 2 della Guida per l'utente, si otterrà un rettangolo colorato con all'interno un testo colorato. Probabilmente l'approccio non è chiaro nella guida dell'utente, ho passato un po 'di tempo a giocarci e finalmente so come funziona.
È necessario immaginare di disegnare una tela. Devi fare tutto il setup prima di disegnare. Di seguito è riportato un esempio che ho preparato per mostrare meglio come stile un testo, tracciare una linea e disegnare un rettangolo, il tutto con la possibilità di mettere il colore su di essi.
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()
fonte
2012-04-20 14:12:26
Da quello che posso dire, l'utilizzo dello spazio colore 256 non funzionerà. Il manuale afferma che l'utilizzo di 1 è "tutte le luci completamente". Quindi, creare 256,256,256 viene effettivamente eseguito usando (1,1,1). Quindi, per ottenere qualcosa in mezzo, dovrai usare i decimali. Per quanto mi riguarda, volevo RGB: (75,116,156) quindi ho dovuto scrivere: 'setFillColorRGB (0.29296875,0.453125,0.609375)'. Questo è l'equivoco di: '75/256, 116/256, 156/256'. Un po 'ridicolo IMO, ma è venuto fuori perfetto. – Garfonzo
buone informazioni :) l'havent si sofferma abbastanza in profondità in questi colori, potrebbe essere utile per il mio lavoro futuro. –
Questo davvero funziona! Ma quando ho impostato un colore diverso, il testo sembra essere trasparente ... – gbrennon