2012-03-23 103 views
1

我正在處理從龐大的數據列表生成PDF。使用reportlab生成長表格的pdf

沒有花哨的造型或格式參與。這只是數據是一個巨大的列表(大約500行和500列)。這是我的代碼。目前,根據頁面大小,在多個頁面上拆分行是沒有問題的,但由於500列不適合放在一個頁面中,因此列正在被切斷。我也想在不同的頁面上分欄。每個單元格條目只是一個整數。我怎樣才能做到這一點?

from reportlab.lib import colors 
from reportlab.lib.units import cm 
from reportlab.lib.pagesizes import A0 
from reportlab.platypus import SimpleDocTemplate, LongTable, TableStyle 


elements = [] 
doc = SimpleDocTemplate(output, pagesize=A0) 
t = LongTable(data) 
t.setStyle(TableStyle([('INNERGRID', (0,0), (-1, -1), 0.25, colors.black), 
         ('BOX', (0, 0), (-1, -1), 0.25, colors.black), 
        ])) 
elements.append(t) 
doc.build(elements) 

回答

1

我認爲PDF打印的最佳選擇可能是實際聲明足夠大的頁面大小來處理數據。例如,如果網格的每個塊都是1x1英寸,每邊填充1英寸,則嘗試執行類似操作:

doc = SimpleDocTemplate(output, pagesize=(502*inch, 502*inch)) 
+0

同意。當行和列都溢出時,處理頁面拆分表並不是一個好方法。因爲所有你想要的都是簡單的東西,這似乎是最好的方法,讓PDF查看器找出它。 – 2012-03-23 18:01:27