Python 中利用 reportlab 生成中文PDF范例
注意安裝reportlab庫,默認是沒有的
我使用的是debian6環境,需要安裝文泉譯字體
apt-get install wqy* #安裝文泉譯簡體中文字體
范例是生成一個df命令,查看當前系統磁盤容量的PDF報表
df -h 命令內容生成PDF#!/usr/bin/python
coding=gbk
import datetime
import subprocess
import codecs
import reportlab.pdfbase.ttfonts
reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('song', '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc'))
import reportlab.lib.fonts
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
def disk_report():
p = subprocess.Popen("df -h ",shell=True,stdout=subprocess.PIPE)
return p.stdout.readlines()
def create_pdf(input,output="disk.pdf"):
now = datetime.datetime.today()
date = now.strftime("%h %d %Y %H:%M:%S")
c = canvas.Canvas(output)
c.setFont('song',10)
textobject = c.beginText()
textobject.setTextOrigin(inch,11*inch)
textobject.textLines('''Disk Capacity Report: %s ''' % date )
for line in input:
line=line.decode("gbk")
textobject.textLine(line.strip())
c.drawText(textobject)
c.showPage()
c.save()
report = disk_report()
create_pdf(report)</pre></h3>
coding=gbk
import datetime import subprocess import codecs import reportlab.pdfbase.ttfonts reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('song', '/usr/share/fonts/truetype/wqy/wqy-zenhei.ttc')) import reportlab.lib.fonts
from reportlab.pdfgen import canvas from reportlab.lib.units import inch def disk_report(): p = subprocess.Popen("df -h ",shell=True,stdout=subprocess.PIPE) return p.stdout.readlines()
def create_pdf(input,output="disk.pdf"): now = datetime.datetime.today() date = now.strftime("%h %d %Y %H:%M:%S") c = canvas.Canvas(output) c.setFont('song',10) textobject = c.beginText() textobject.setTextOrigin(inch,11*inch) textobject.textLines('''Disk Capacity Report: %s ''' % date ) for line in input: line=line.decode("gbk") textobject.textLine(line.strip()) c.drawText(textobject) c.showPage() c.save() report = disk_report() create_pdf(report)</pre></h3>