一說(shuō)到pdf文件义黎,大家應(yīng)該都很熟悉吧,特別是那些經(jīng)常在網(wǎng)上搜索某本書(shū)pdf版的人豁跑。別裝了廉涕,那些人當(dāng)中應(yīng)該就有你吧?--開(kāi)玩笑的,知道你是一向只買正版紙質(zhì)版的人火的。
買正版紙質(zhì)的人壶愤?好像扯遠(yuǎn)了。好吧馏鹤,言歸正傳征椒,咱說(shuō)一下Python3處理pdf相關(guān)的內(nèi)容。
Python3處理pdf的第3庫(kù)挺多的湃累,當(dāng)然勃救,處理其它文件的庫(kù)也多。這次咱就說(shuō)下耳熟能詳治力、久經(jīng)戰(zhàn)場(chǎng)并被最蒙秒、最、最被看好的ReportLab宵统。
1
若要想要獲得ReportLab的支持晕讲,得先安裝它的開(kāi)發(fā)包。打開(kāi)【終端】马澈,輸入那句瓢省,閉著眼,都會(huì)輸錯(cuò)的命令:pip3 install reportlab?痊班。稍等一會(huì)會(huì)勤婚,就能安裝完了,究竟多長(zhǎng)時(shí)間涤伐,你可以用手機(jī)記一下時(shí)間馒胆,如果實(shí)在閑得無(wú)聊的話。
2
安裝好開(kāi)發(fā)包后凝果,咱就來(lái)寫(xiě)寫(xiě)如何生成pdf文件并送給經(jīng)常下載它同類的你祝迂。來(lái),打開(kāi)你喜歡的開(kāi)發(fā)工具器净,輸入以下代碼型雳。
from reportlab.pdfgen import canvas
def write_pdf():
?c = canvas.Canvas("demo1.pdf")
?#?注意,這里用英文掌动,不是因?yàn)槲矣⑽暮盟膯悄J(rèn)不支持中文
?c.drawString(200, 500, "Hello PDF")
?#?不信默認(rèn)不支持中文宁玫,咱走著瞧
?c.drawString(200, 550, "你好,PDF文件")
?c.showPage()
?c.save()
write_pdf()
3
見(jiàn)到上面的中文亂碼粗恢,整個(gè)心情都不好了,倘若不解決欧瘪,以后就不用混Python圈了眷射。若要想ReportLab支持中文,可以去下載SimSun.ttf字體,并把它放在/ python3.7/site-packages/reportlab/fonts文件夾下妖碉,至于Python的安裝路徑得按你的實(shí)際情況來(lái)涌庭。當(dāng)然,中文字體并非一定要用SimSun的欧宜,只是這個(gè)可以支持坐榆,我就用它來(lái)說(shuō)明而已。
from reportlab.pdfgen.canvas import Canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
def write_pdf():
?#?注冊(cè)字體
???pdfmetrics.registerFont(TTFont("SimSun", "SimSun.ttf"))
?c = Canvas("demo1.pdf")
?#?應(yīng)用注冊(cè)的字體
?c.setFont("SimSun", 14)
?c.drawString(200, 550, "自從PDF支持中文以后冗茸,整個(gè)人都變了")
?c.save()
write_pdf()