> On Martes 06 Abril 2010 15:25:09 Boris Perez Canedo escribi�: 
>>
> On Viernes 02 Abril 2010 14:33:23 Boris Perez Canedo escribi�: 
>>
>> Hola, 
>> >> 
>> >> Es posible rotar una
tabla con su 
>> 
>> contenido en reportlab? Sucede que 
>> > �No 
>> 
>> ser�a preferible cambiar la
orientaci�n a landscape en vez de portrait 
>> 
>> > para esas
p�ginas en concreto?� 
>> 
>> �Hola y gracias por 
>>
la respuesta, 
>> 
>> Soy bastante nuevo con reportlab. C�mo hago
para hacer 
>> lo que dices arriba? y c�mo puedo determinar si una consulta
me va producir 
>> una tabla que se saldr� de los l�mites para entonces
cambiar la 
>> orientaci�n para esas p�ginas? 
>> 
>>

>> Saludos, 
>> Boris. 
>> 
>> 
>> --- 
>> La mejor vacuna contra el virus A(H1N1) es la higiene
personal 
>> 
> cuando generes el documento utiliza
pagesize=landscape(A4) 
> A4 si es el tama�o de p�gina que usas.

> Te pego el siguiente c�digo de ejemplo de las listas de reportlab: 
> def go(): 
> doc = SimpleDocTemplate("phello.pdf") 
>
Story = [Spacer(1,2*inch)] 
> style = styles["Normal"] 
> for
i in range(100): 
> bogustext = ("This is Paragraph number %s. " % i)
*20 
> p = Paragraph(bogustext, style) 
> Story.append(p) 
>
Story.append(Spacer(1,0.2*inch)) 
> from reportlab.lib.pagesizes import A4,
LETTER, landscape, portrait 
> doc.pagesize = landscape(A4) 
>
doc.build(Story, onFirstPage=myFirstPage, onLaterPages=myLaterPages)�

Hola,�
Ya� probe lo del landscape, pero aun asi las tablas se salen del
area, en verdad son muy grandes, lo que hice fue dividirlas en otras tablas 
utilizando
esta funcion:



def split(table, table_style, table_align, availableSpace,tablas = []):

tb = Table(table)
tb.setStyle(table_style)
tb.hAlign = table_align
if
tb.minWidth() <= availableSpace:
�����
tablas.append(tb)

else:
����� indexes = range(len(table[0]))
����� indexes.sort(reverse = True)
������for x in indexes:
����������� pos = x
������������newTable = [
y[0:x] for y in table]
����������
�tb = Table(newTable)
������������tb.setStyle(table_style)
����������� tb.hAlign =
table_align
������������if
tb.minWidth() <= availableSpace:
������������������
tablas.append(tb)
�������������������break�
����� splitNew = [y[pos:] for y in table]
������split(splitNew, table_style, table_align,
availableSpace, tablas)

Me funciona bastante bien, pero hay que tener cuidado
con los estilos porque si al dividir una tabla resulta una que tiene solo una 
columna y
el estilo general define mas de una columna te da un error de indice.
Tengo un
problema para definir el valor para availableSpace este debe ser igual al por 
ejemplo
A4[0] - 2*margen. C�mo obtengo el margen?

Saludos,
Boris.





---
La mejor vacuna contra el virus A(H1N1) es la higiene personal
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a