Python reportlab庫之Canvas

在上一篇《Python reportlab庫之hello world》中我們演示了簡單Demo,在Demo中使用Canvas對象。

from reportlab.pdfgen import canvas
def hello(c):
    c.drawString(100,100,"Hello World")
c = canvas.Canvas("hello.pdf")
hello(c)
c.showPage()
c.save()

本篇文章將簡單介紹一下Canvas對象,首先我先來看看Canvas的構(gòu)造函數(shù)

def __init__(self,filename,
    pagesize=(595.27,841.89),
    bottomup = 1,
    pageCompression=0,
    encoding=rl_config.defaultEncoding,
    verbosity=0
    encrypt=None)

filename參數(shù)控制最終PDF文件的名稱
pagesize 參數(shù)有width和height兩個參數(shù),canvas默認的大小是A4紙(美國標(biāo)志信件采用的就是A4),具體demo如下

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, A4
myCanvas = canvas.Canvas('myfile.pdf', pagesize=letter)
width, height = letter #keep for later

運行效果


letter

bottomup 參數(shù)用于切換坐標(biāo)系。一些系統(tǒng)把(0,0)坐標(biāo)設(shè)置在底部左側(cè)。bottomup 未來可能會被移除。

pageCompression 選擇是否壓縮每個頁面。默認的頁面是不被壓縮的,因為壓縮會影響文件處理速度。如果pageCompression =1,那么文件將被壓縮到最小,但生成時間也會被延長。注意,圖片總是會被壓縮。如果您有大量的文章和矢量圖像會造成文件過大,使用pageCompression參數(shù)將有效減少文件體積。

encoding 參數(shù)在2.0版本上已經(jīng)省略了,大家基本上可以忽略這個參數(shù)。

verbosity 參數(shù)參數(shù)確定打印多少日志信息。默認情況下,verbosity 為0。如果值為1,您將得到生成文檔是的日志信息。數(shù)值越高可能會在未來產(chǎn)生更多的日志輸出。

encrypt 參數(shù)決定文檔是否加密。默認情況下,文檔是不加密的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容