> 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
[email protected]
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/