Scusate... mi è partito il messaggio senza allegato... eccolo...

2008/6/15 Zanon Samuele <[EMAIL PROTECTED]>:

> -MySQL
> -utf-8
> -in teoria si
> -In allegato trovato lo script....
>
> Come toverete nello script, che le stringhe di testo estratte dal database
> ho provato a fare un encode in utf-8 tramite il metodo .encode delle
> stringhe.
>
> provate a vedere se c'è un errore o qualcosa per poter sistemare la cosa...
> grazie mille
>
> Il 15 giugno 2008 20.45, Carlo C8E Miron <[EMAIL PROTECTED]> ha scritto:
>
> Ciao fratello!
>>
>> 2008/6/15 Alberto Berti <[EMAIL PROTECTED]>:
>> >>>>>> "Carlo" == Carlo C8E Miron <[EMAIL PROTECTED]> writes:
>> >    Carlo> Mah, io mi inginocchierei sui ceci e proverei a
>> >    Carlo> chiederglielo per favore...
>> > esagerato, pare che bastino una decina di offerte votive al dio
>> serpente...
>>
>> Potrebbe bastare, a patto che l'OP provveda anche le seguenti
>> informazioni, senza le quali anche Sua Mostruosita` FSM non potrebbe
>> aiutarlo:
>>
>> - che database usa;
>> - che encoding usa il db;
>> - se il contenuto del db corrisponde all'encoding di cui al punto
>> precedente;
>> - non che serva a questo punto, ma lo script promesso poteva anche
>> allegarlo ad una delle due mail, eh...
>>
>> Ramen,
>> (c)
>> --
>> Carlo C8E Miron
>> Open Source Solution Architect
>>
>> <http://www.linkedin.com/in/carlomiron>
>> <http://pycon.it/> <http://stacktrace.it/> <http://pydinner.org/>
>> _______________________________________________
>> Python mailing list
>> Python@lists.python.it
>> http://lists.python.it/mailman/listinfo/python
>>
>
>
>
> --
> Zanon Samuele
> mailto:[EMAIL PROTECTED]
>



-- 
Zanon Samuele
mailto:[EMAIL PROTECTED]
#!/usr/bin/env python

import os
import time
import random
import string
import MySQLdb
from reportlab.platypus import *
from reportlab.lib.styles import *
from reportlab.rl_config import defaultPageSize
from reportlab.lib.units import inch, cm
from reportlab.lib import colors

PAGE_HEIGHT = defaultPageSize[0]
PAGE_WIDTH  = defaultPageSize[1]

StandardStyle = ParagraphStyle('Standard', None)
StandardStyle.fontName = 'Times-Roman'
StandardStyle.fontSize = 10
StandardStyle.textColor = colors.black
StandardStyle.spaceAfter = 5
StandardStyle.backColor = colors.whitesmoke
TitleStyle = ParagraphStyle('Title', StandardStyle)
TitleStyle.fontName = 'LettErrorRobot-Chrome'
TitleStyle.fontName = 'Times-Bold'
TitleStyle.fontSize = 24
TitleStyle.spaceAfter = 30
TitleStyle.align = "CENTER"
BoldStyle = ParagraphStyle('Bold', StandardStyle)
BoldStyle.fontName = 'Times-Bold'

def DefaultReportTableStyle(header_fontsize=10, cell_fontsize=8):
  return TableStyle ([\
  ('FONTNAME', (0,0), (-1,0), "Times-Bold"),\
  ('FONTSIZE', (0,0), (-1,0), 10),\
  ('TEXTCOLOR', (0,0), (-1,0), colors.darkred),\
  ('BACKGROUND', (0,0), (-1,0), colors.lightyellow),\
  ('FONTNAME', (0,1), (-1,-1), "Times-Roman"),\
  ('FONTSIZE', (0,1), (-1,-1), 8),\
  ('TEXTCOLOR', (0,1), (-1,-1), colors.black),\
  ('ALIGN', (0,0), (-1,-1), "CENTER"),\
  ('VALIGN', (0,1), (0,-1), 'TOP'),\
  ('VALIGN', (0,0), (-1,0), 'BOTTOM'),\
  ('LEFTPADDING', (0,0), (-1,-1), 3),\
  ('RIGHTPADDING', (0,0), (-1,-1), 3),\
  ('TOPPADDING', (0,0), (-1,-1), 1),\
  ('BOTTOMPADDING', (0,0), (-1,-1), 1),\
  ('GRID', (0,0), (-1,-1), 0.5, colors.black)
  ])
 
class FirstPageTemplate(PageTemplate):
  def __init__(self, id, pageSize=defaultPageSize):
    self.pageWidth = pageSize[0]
    self.pageHeight = pageSize[1]
    frame1 = Frame(inch, inch, self.pageWidth - 2*inch, self.pageHeight - 2*inch, id='FirstPage')
    PageTemplate.__init__(self, id, [frame1])
    
  def afterDrawPage(self, canvas, doc):
    canvas.setAuthor("")
    canvas.setTitle("")
    canvas.setSubject("")
    canvas.saveState()
    #top line
    canvas.setLineWidth(1)
    #bottom line
    canvas.setLineWidth(0.5)
    canvas.line(inch, inch, doc.pagesize[0]-inch, inch)
    canvas.setFont('Times-Roman', 8)
    canvas.drawCentredString(PAGE_WIDTH / 2.0, inch*0.75, "- %d -" % doc.page)
    canvas.drawRightString(PAGE_WIDTH - inch, inch*0.75, doc.report_timestamp)
    #help line for punching
    canvas.setLineWidth(0.3)
    canvas.line(20, doc.pagesize[1] / 2, 25, doc.pagesize[1]/2)
    canvas.restoreState()

class OtherPagesTemplate(PageTemplate):
  def __init__(self, id, pageSize=defaultPageSize):
    self.pageWidth = pageSize[0]
    self.pageHeight = pageSize[1]
    frame1 = Frame(inch, inch, self.pageWidth - 2*inch, self.pageHeight - 2*inch, id='OtherPages')
    PageTemplate.__init__(self, id, [frame1])
  
  def afterPageDraw(self, canvas, doc):
    canvas.saveState()
    #document title
    canvas.setFont('Times-Bold', 12)
    #current report title
    canvas.setFont('Times-Bold', 8)
    #top line
    canvas.setLineWidth(1)
    canvas.line(inch, inch, doc.pagesize[0]-inch, inch)
    canvas.setFont('Times-Roman', 8)
    
    canvas.drawCentredString(PAGE_WIDTH/2.0, inch*0.75, "- %d -" % doc.page)
    canvas.drawRightString(PAGE_WIDTH - inch, inch*0.75, doc.report_timestamp)
    #help line for punching
    canvas.setLineWidth(0.3)
    canvas.line(20, doc.pagesize[1] / 2, 25, doc.pagesize[1]/ 2)
    canvas.restorestate()
    
class SipdamsDocTemplate(BaseDocTemplate):
  def afterInit(self):
    self.addPageTemplates(FirstPageTemplate('First', self.pagesize))
    self.addPageTemplates(OtherPagesTemplate('Later', self.pagesize))
    
    
#Connessione al database
conn = MySQLdb.connect(host="localhost", user="root", passwd="t34ikiql", db="coro")
cursore = conn.cursor()
cursore.execute('SELECT * FROM contatti ORDER BY nome, cognome')
   
    
def main():
  NOW = time.strftime("%d/%m/%y %H.%M.%S", time.localtime(time.time()))
  output_filename = "Coristi.pdf"
  doc = SipdamsDocTemplate(output_filename)
  doc.report_timestamp = NOW
  Report = []
  p = Paragraph("Piccolo Coro di San Francesco", TitleStyle)
  Report.append(p)
  Report.append(NextPageTemplate('Later'))
  d = []
  d.append(["Nome", "Cognome", "Indirizzo", "Citta", "Cell", "Tel", "GG-MM di nascita", "E-mail"])
  
  for record in cursore.fetchall():
    str1 = record[1].encode('utf-8')
    str2 = record[2].encode('utf-8')
    str3 = record[3].encode('utf-8')
    str4 = record[4].encode('utf-8')
    str5 = record[5].encode('utf-8')
    str6 = record[6].encode('utf-8')
    str7 = record[7].encode('utf-8')
    str8 = record[8].encode('utf-8')
    str9 = record[9].encode('utf-8')
    str10 = record[10].encode('utf-8')
    str11 = record[11].encode('utf-8')
    d.append([str1, str2, str3, str4, str5 + "." + str6, str7 + "." + str8, str9 + "-" + str10, str11])
  	
  tblstyle = DefaultReportTableStyle()
  tblstyle.add('BACKGROUND', (0,0), (-1,0), colors.orange)
  tbl = Table(d, colWidths=None, rowHeights=None, style=tblstyle, splitByRow=1, repeatRows=1, repeatCols=0)
  tbl.hAlign = "CENTER"
  Report.append(tbl)
  print "Creazione Report"
  doc.build(Report)
  
main()
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a