用python的reportlab庫生成PDF報表
reportlab不是python的標準庫,它的強大之處在于能滿足絕大部分報表的需求形式,這篇文章將介紹reportlab中基本常用的api,使用canvas畫出一份整潔的PDF報表
前言
reportlab不是python的標準庫,它的強大之處在于能滿足絕大部分報表的需求形式,這篇文章將介紹reportlab中基本常用的api,使用canvas畫出一份整潔的PDF報表。內容均來自reportlab的官方user guide。
依賴與安裝
首先,這里是官方的installation guide。reportlab目前應該只是支持到python2.7, py3的同學另想辦法吧。
樓主的環境:fedora18 64bit
$ tar xvfz Imaging-1.1.7.tar.gz $ cd Imaging-1.1.7 $ python setup.py install
使用
實例:
別怪我再提一遍官方的user guide,文檔是很全的。
我貼出下面的代碼來解釋基本的使用:
# -*- coding: utf-8 -*- #字體庫 import reportlab.lib.fonts #canvas畫圖的類庫 from reportlab.pdfgen.canvas import Canvas #用于定位的inch庫,inch將作為我們的高度寬度的單位 from reportlab.lib.units import inch if __name__ == "__main__": #聲明Canvas類對象,傳入的就是要生成的pdf文件名字 can = Canvas('report.pdf') pdf_head(can, "test for REPORTLAB!") #showpage將保留之前的操作內容之后新建一張空白頁 can.showPage() #將所有的頁內容存到打開的pdf文件里面。 can.save() def pdf_head(canvas, headtext): #setFont是字體設置的函數,第一個參數是類型,第二個是大小 canvas.setFont("Helvetica-Bold", 11.5) #向一張pdf頁面上寫string canvas.drawString(1*inch, 10.5*inch, headtext) #畫一個矩形,并填充為黑色 canvas.rect(1*inch, 10.3*inch, 6.5*inch, 0.12*inch,fill=1) #畫一條直線 canvas.line(1*inch, 10*inch, 7.5*inch, 10*inch)
另外:
另外的另外:
效果截圖

本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!