python根据模板生成pdf文件_使用Python生成pdf文件
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文件相关推荐
- java dom xml 换行,dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件...
网友求助:dom4j解析xml文件_用DOM解析XML文件,怎么才能让解析出来的文本不用换行_dom解析xml文件 问题importjava.text.SimpleDateFormat; import ...
- python根据模板生成pdf文件_程序生成word与PDF文档的方法(python)
程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用free ...
- python 删除pdf页面_使用python从新生成的pdf文件中删除空白页
使用下面的代码,我试图将图片从目录粘贴到PDF文件中.代码已经在工作,生成我的PDF几乎如我所愿.在 唯一的问题是它总是在图片之间添加空白页,我不知道为什么. 如果我执行代码,PDF将以空白页开始,然 ...
- python处理word或者pdf文件_利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用fr ...
- python生成pdf报表_用python的reportlab库生成PDF报表
前言 reportlab不是python的标准库,它的强大之处在于能满足绝大部分报表的需求形式,这篇文章将介绍reportlab中基本常用的api,使用canvas画出一份整洁的PDF报表.内容均来自 ...
- python编辑svg文件_使用Python批量转换SVG文件为PNG或PDF文件
使用Python批量转换SVG文件为PNG或PDF文件 使用Python批量转换SVG文件为PNG或PDF文件 使用模块 1 模块单独使用 2 模块用于代码 实例 1 命令行方式 2 python脚本 ...
- python不可以处理pdf文件_使用 Python 处理 pdf
使用 Python 处理 pdf 背景 最近老婆工作中碰到一些困难,总是跟我抱怨工作好烦,不开心. 主要是是因为要处理一些报告,这些 pdf 格式的样本报告比较多,基本都是人工操作比较容易出错,也比较 ...
- python图片转pdf文件_用python 制作图片转pdf工具
这篇文章主要介绍了用python 制作图片转pdf工具的思路及代码,非常详细,有需要的小伙伴参考下 最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用pyth ...
- python 打开pdf文件_用Python开发的简易PDF阅读器
主要的库 PyQt5:UI的开发 fitz:与pdf文件相关的操作几乎都用的是它 这是一个用Python开发的pdf阅读器,是软A项目的附加软件(虽然现在主程序几乎可以说还没有开始:joy:,只完成了 ...
- python 生成exe 图片资源_用python DIY一个图片转pdf工具并打包成exe
最近因为想要看漫画,无奈下载的漫画是jpg的格式,网上的转换器还没一个好用的,于是乎就打算用python自己DIY一下: 这里主要用了reportlab.开始打算随便写几行,结果为若干坑纠结了挺久,于 ...
最新文章
- android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...
- 2.12 总结-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- Win7 格式化U盘
- flask与js交互的示例代码_Frida Java Hook 详解(安卓9):代码及示例(上)
- 基于Lua语言的wireshark插件编写
- jQuery File Upload blueimp with struts2 简单试用
- 随着浏览器窗口缩小表格出现横向滚动条
- win10下安装STEP7
- 随机森林、极端随机森林以及深度森林代码
- 微信表白代码,单身汪们还不快收藏!
- JAVAWEB开发Myeclipse 项目中报“无法解析类型 java.io.ObjectInputStream,从必需的 .class 文件间接引用了它”解决办法
- c语言的case有什么作用,c语言case的用法
- C++11_lambda表达式
- js 校验字符串是否为数字和字母组合
- div html用法详解,div标签详解
- 怎么合并多个PDF文件?仅需三个步骤,轻松合成一个文档
- vsjitdebugger.exe 进程解决方法
- 《Qt 学习之路 2》
- 网上购车平台买车,购车门槛低!
- 认清企业潜规则,做职业化的企业人
热门文章
- 音视频开发——通信直播协议和视频推流丨RTMP-RTSP
- 利用滑动窗口法解决无重复字符的最长子串
- 系统工程理论与实践投稿经验_畜牧期刊发表服务最快最好网站_【100%录用和发表、万佳论文网】...
- 【题解】【AcWing】1609. 前序和后序遍历
- Nginx 指定多个域名跨域请求配置
- java io教学文件_通过代码实例跟我学Java语言程序设计及应用技术——Java文件IO技术及应用相关的教学示例(第3部分)...
- 【无代码体验】鲸智搭模板《办公用品管理系统》试用分享
- 关于深度学习在生物学领域的应用分析Applications of Deep Learning in Biomedicine
- 九三学社邬玉良:破解大数据之患
- 【模拟】蚂蚁(jzoj 1508)