python生成pdf文档_使用Python生成pdf文件
Python平臺(tái)的優(yōu)秀PDF報(bào)表類庫(kù)Reportlab。它不屬于Python的標(biāo)準(zhǔn)類庫(kù),所以必須手動(dòng)下載類庫(kù)包并安裝:
yum install python-reportlab -y
這篇文章將介紹reportlab中基本常用的api,使用canvas畫出一份整潔的PDF報(bào)表。詳細(xì)內(nèi)容參考reportlab的官方user guide。
示例一、生成一段文字#!/usr/bin/python
from?reportlab.pdfgen?import?canvas
def?hello():
c?=?canvas.Canvas("helloworld.pdf")
c.drawString(100,100,"Hello,World")
c.showPage()
c.save()
hello()
示例二、生成單個(gè)文件的pdf#需要安裝字體?yum?install?wqy-*?-y
#!/usr/bin/python
import?datetime
import?subprocess
import?codecs
from?reportlab.pdfgen?import?canvas
from?reportlab.lib.units?import?inch
from?reportlab.lib.pagesizes?import?A4,?landscape
import?reportlab.pdfbase.ttfonts
reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('song',?'/usr/share/fonts/cn/msjh.ttf'))
import?reportlab.lib.fonts
def?disk1_report():
p1?=?subprocess.Popen("cat?cmd1.log?",shell=True,stdout=subprocess.PIPE)
return?p1.stdout.readlines()
def?create_pdf(input,output="disk1.pdf"):
now?=?datetime.datetime.today()
date?=?now.strftime("%h?%d?%Y?%H:%M:%S")
c?=?canvas.Canvas(output,pagesize=A4)
c.setFont('song',10)
textobject?=?c.beginText()
textobject.setTextOrigin(1*inch,11*inch)
textobject.textLines('''Disk?Capacity?Report:?%s?'''?%?date?)
for?line?in?input:
textobject.textLine(line.strip())
c.drawText(textobject)
c.showPage()
c.save()
report?=?disk1_report()
create_pdf(report)
示例三、循環(huán)生成指定目錄下的多個(gè)文件()#!/usr/bin/python
import?os
import?os.path
import?datetime
import?subprocess
from?reportlab.lib.pagesizes?import?A4,?landscape
from?reportlab.pdfgen?import?canvas
from?reportlab.lib.units?import?inch
logdir?=?"/var/www/device/check_log"
for?root,dirs,filenames?in?os.walk(logdir):
for?filename?in?filenames:
v?=?root+os.sep+filename
os.environ['file']?=?str(v)
def?disk_report():
p?=?subprocess.Popen("cat?$file?",shell=True,stdout=subprocess.PIPE)
return?p.stdout.readlines()
def?create_pdf(input,output="/var/www/device/check_pdf/"+filename+".pdf"):
now?=?datetime.datetime.today()
date?=?now.strftime("%h?%d?%Y?%H:%M:%S")
c?=?canvas.Canvas(output,pagesize=A4)
textobject?=?c.beginText()
textobject.setTextOrigin(1*inch,11*inch)
textobject.textLines('''Disk?Capacity?Report:?%s?'''?%?date?)
for?line?in?input:
textobject.textLine(line.strip())
c.drawText(textobject)
c.showPage()
c.save()
report?=?disk_report()
create_pdf(report)
總結(jié)
以上是生活随笔為你收集整理的python生成pdf文档_使用Python生成pdf文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用indent格式化代码
- 下一篇: websocket python爬虫_p