Python平台的优秀PDF报表类库Reportlab。它不属于Python的标准类库,所以必须手动下载类库包并安装:

yum install python-reportlab -y

这篇文章将介绍reportlab中基本常用的api,使用canvas画出一份整洁的PDF报表。详细内容参考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()

示例二、生成单个文件的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)

示例三、循环生成指定目录下的多个文件()#!/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)

python根据模板生成pdf文件_使用Python生成pdf文件相关推荐

  1. java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...

    网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...

  2. python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)

    程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用free ...

  3. python 删除pdf页面_使用python从新生成的pdf文件中删除空白页

    使用下面的代码,我试图将图片从目录粘贴到PDF文件中.代码已经在工作,生成我的PDF几乎如我所愿.在 唯一的问题是它总是在图片之间添加空白页,我不知道为什么. 如果我执行代码,PDF将以空白页开始,然 ...

  4. python处理word或者pdf文件_利用python程序生成word和PDF文档的方法

    一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...

  5. python生成pdf报表_用python的reportlab库生成PDF报表

    前言 reportlab不是python的标准库,它的强大之处在于能满足绝大部分报表的需求形式,这篇文章将介绍reportlab中基本常用的api,使用canvas画出一份整洁的PDF报表.内容均来自 ...

  6. python编辑svg文件_使用Python批量转换SVG文件为PNG或PDF文件

    使用Python批量转换SVG文件为PNG或PDF文件 使用Python批量转换SVG文件为PNG或PDF文件 使用模块 1 模块单独使用 2 模块用于代码 实例 1 命令行方式 2 python脚本 ...

  7. python不可以处理pdf文件_使用 Python 处理 pdf

    使用 Python 处理 pdf 背景 最近老婆工作中碰到一些困难,总是跟我抱怨工作好烦,不开心. 主要是是因为要处理一些报告,这些 pdf 格式的样本报告比较多,基本都是人工操作比较容易出错,也比较 ...

  8. python图片转pdf文件_用python 制作图片转pdf工具

    这篇文章主要介绍了用python 制作图片转pdf工具的思路及代码,非常详细,有需要的小伙伴参考下 最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用pyth ...

  9. python 打开pdf文件_用Python开发的简易PDF阅读器

    主要的库 PyQt5:UI的开发 fitz:与pdf文件相关的操作几乎都用的是它 这是一个用Python开发的pdf阅读器,是软A项目的附加软件(虽然现在主程序几乎可以说还没有开始:joy:,只完成了 ...

  10. python 生成exe 图片资源_用python DIY一个图片转pdf工具并打包成exe

    最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于 ...

最新文章

  1. android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...
  2. 2.12 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  3. Win7 格式化U盘
  4. flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)
  5. 基于Lua语言的wireshark插件编写
  6. jQuery File Upload blueimp with struts2 简单试用
  7. 随着浏览器窗口缩小表格出现横向滚动条
  8. win10下安装STEP7
  9. 随机森林、极端随机森林以及深度森林代码
  10. 微信表白代码,单身汪们还不快收藏!
  11. JAVAWEB开发Myeclipse 项目中报“无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它”解决办法
  12. c语言的case有什么作用,c语言case的用法
  13. C++11_lambda表达式
  14. js 校验字符串是否为数字和字母组合
  15. div html用法详解,div标签详解
  16. 怎么合并多个PDF文件?仅需三个步骤,轻松合成一个文档
  17. vsjitdebugger.exe 进程解决方法
  18. 《Qt 学习之路 2》
  19. 网上购车平台买车,购车门槛低!
  20. 认清企业潜规则,做职业化的企业人

热门文章

  1. 音视频开发——通信直播协议和视频推流丨RTMP-RTSP
  2. 利用滑动窗口法解决无重复字符的最长子串
  3. 系统工程理论与实践投稿经验_畜牧期刊发表服务最快最好网站_【100%录用和发表、万佳论文网】...
  4. 【题解】【AcWing】1609. 前序和后序遍历
  5. Nginx 指定多个域名跨域请求配置
  6. java io教学文件_通过代码实例跟我学Java语言程序设计及应用技术——Java文件IO技术及应用相关的教学示例(第3部分)...
  7. 【无代码体验】鲸智搭模板《办公用品管理系统》试用分享
  8. 关于深度学习在生物学领域的应用分析Applications of Deep Learning in Biomedicine
  9. 九三学社邬玉良:破解大数据之患
  10. 【模拟】蚂蚁(jzoj 1508)