Python生成PDF文件(1)

如何將文檔轉變爲 PDF 文件舉例

ReportLab 爲了方便生成文檔提供了一種叫PLATYPUS(Page Layout and Typography Using Scripts)的一系列的模板類,它用於控制文檔的佈局,可以讓我們不用關心具體的座標,繪製命令,甚至分頁的處理,而將注意力集中在佈局與內容上。
下面是一個最簡單的生成Hello, ReportLab的例子。

from reportlab.platypus import Paragraph, SimpleDocTemplate
from reportlab.lib.styles import getSampleStyleSheet
stylesheet=getSampleStyleSheet()
normalStyle = stylesheet['Normal']
story = []
story.append(Paragraph("Hello, ReportLab", normalStyle))
doc = SimpleDocTemplate(‘hello.pdf’)
doc.build(story)

第1行我們導入Paragraph和SimpleDocTemplate類。Paragraph是用於生成文本段落,SimpleDocTemplate是文檔佈局模板。
第2行導入將要用在Paragraph中的樣式。也就是說ReportLab已經爲我們預先定義了一些樣式,如標準,標題1,標題2,黑體等等,用於生成特殊效果。與Word中的樣式有些象。
第3行是得到樣式集。
第4行是得到標準樣式,它將用在Paragraph的生成中。
第5行是生成一個空列表。這裏叫story,在用戶手冊中你會看到這個單詞。它將用來存儲象段落這樣的對象,其它的還可以是圖片等。而這些東西是有順序的,因此使用了list來保存。因此在用戶手冊中看到這個單詞不要以爲是什麼特別的對象。
第6行生成我們期待的”Hello, ReportLab”段落,並且它的樣式是普通。將生成的結果放在story中。
第7行創建SimpleDocTemplate對象,指定將要生成的文件名。 
第8行執行文檔模板的build方法最終生成文件。所以有文檔模板類都有build方法。
從上面的例子可以看到通過文檔模板及樣式可以讓我們方便的創建面向對象的應用,而不用再關心座標、繪製命令等底層的東西,從而可以方便我們的文檔生成。打開hello.pdf看一看效果吧。這回就象是真正的文檔,”Hello, ReportLab”放在上面了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章