> 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/