python生成pdf报表_用python的reportlab库生成PDF报表
前言
reportlab不是python的标准库,它的强大之处在于能满足绝大部分报表的需求形式,这篇文章将介绍reportlab中基本常用的api,使用canvas画出一份整洁的PDF报表。内容均来自reportlab的官方user guide。
依赖与安装
首先,这里是官方的installation guide。reportlab目前应该只是支持到python2.7, py3的同学另想办法吧。
楼主的环境:fedora18 64bit
安装python2.7 or 2.6 or 2.5
PIL:如果你有图片的操作需要这个库,python imaging library ,下载地址。 $ tar xvfz Imaging-1.1.7.tar.gz
$ cd Imaging-1.1.7
$ python setup.py install
官网上有提到其他的依赖包,如果需要的话可以自行测试,如Diagra。
reportlab的安装,使用 easy_install reportlab 或者pip install reportlab就可以
使用
实例:
别怪我再提一遍官方的user guide,文档是很全的。
我贴出下面的代码来解释基本的使用:
# -*- coding: utf-8 -*-
#字体库
import reportlab.lib.fonts
#canvas画图的类库
from reportlab.pdfgen.canvas import Canvas
#用于定位的inch库,inch将作为我们的高度宽度的单位
from reportlab.lib.units import inch
if __name__ == "__main__":
#声明Canvas类对象,传入的就是要生成的pdf文件名字
can = Canvas('report.pdf')
pdf_head(can, "test for REPORTLAB!")
#showpage将保留之前的操作内容之后新建一张空白页
can.showPage()
#将所有的页内容存到打开的pdf文件里面。
can.save()
def pdf_head(canvas, headtext):
#setFont是字体设置的函数,第一个参数是类型,第二个是大小
canvas.setFont("Helvetica-Bold", 11.5)
#向一张pdf页面上写string
canvas.drawString(1*inch, 10.5*inch, headtext)
#画一个矩形,并填充为黑色
canvas.rect(1*inch, 10.3*inch, 6.5*inch, 0.12*inch,fill=1)
#画一条直线
canvas.line(1*inch, 10*inch, 7.5*inch, 10*inch)
另外:
showPage()使用后将重置之前字体之类的设置
inch作为量度单位是可以的,一张默认纸张的大小,将以最左下角作为(0,0)坐标点,正负为方向
一张纸的高度大约12*inch,宽大约10*inch
两个坐标端点确定一条直线
一条对角线的两个端点坐标确定一个矩形
设置颜色等其他api请参考官方文档
另外的另外:
直接使用api实际是最麻烦的用法,是基础用法。
使用RML,HTML做报表,请参考这里。
效果截图
python生成pdf报表_用python的reportlab库生成PDF报表相关推荐
- reportlab 库生成带有表格的PDF报表文件
用reportlab 库生成PDF文件的确很方便,对于简单的PDF文件的生成,可以直接使用最基本的一些drawXXX()方法来实现,具有可参见我的另一篇文章(https://blog.csdn.net ...
- django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)
from django.http import HttpResponse def download_file(request): # Text file #response = HttpRespons ...
- python怎么写excel数据透视自动报表_使用Python生成自动报表(E
使用Python生成自动报表(Excel)以邮件发送 数据分析师肯定每天都被各种各样的数据数据报表搞得焦头烂额,老板的,运营的.产品的等等.而且大部分报表都是重复性的工作,这篇文章就是帮助大家如何用P ...
- python根据模板生成pdf文件_使用Python生成pdf文件
Python平台的优秀PDF报表类库Reportlab.它不属于Python的标准类库,所以必须手动下载类库包并安装: yum install python-reportlab -y 这篇文章将介绍r ...
- python html转pdf 调整大小_用Python将HTML转为PDF。
上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便平常学习. 然后扩散一下之前一个比赛的结果(华章计算机抖音大赛). 顺便谈谈自己对今后送书的一个想法. 另外之前的送书活动,有中奖 ...
- 在python中设置密码登录_在python中生成密码
在python中生成密码 我想在python中生成一些字母数字密码. 一些可能的方法是: import string from random import sample, choice chars = ...
- python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!
学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作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 格式的样本报告比较多,基本都是人工操作比较容易出错,也比较 ...
最新文章
- JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
- IT项目协调-网络整改项目
- 《团队——科学计算器代码设计规范》
- 机器学习特征构建_使用Streamlit构建您的基础机器学习Web应用
- 新颖的c语言题目,新颖版c语言经典习题100例(全面面)
- java8实战怎么样_Java8中你可能不知道的一些地方之Stream实战
- java springboot b2b2c shop 多用户商城系统源码(四):熔断器Hystrix
- 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
- layout_gravity与gravity的区别
- 从零开始学习makefile(7) makefile的filter的作用
- python是一种跨平台语言_python是跨平台的语言吗
- Java、JSP房产中介房屋信息管理系统
- 按键精灵大漠找字FindStrFast 函数封装
- 用python的matplotlib和numpy库绘制股票K线均线
- problem 1148
- java对接天眼查接口,天眼查提供案例方法过期最新案例
- Attention!当推荐系统遇见注意力机制
- C++虚函数概念及使用(基础)
- 深入浅入 ~ ConCurrentHashMap底层原理透析
- mysql备份数据库某表格_mysql数据库的备份以及表格数据之间的复制