前言

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报表相关推荐

  1. reportlab 库生成带有表格的PDF报表文件

    用reportlab 库生成PDF文件的确很方便,对于简单的PDF文件的生成,可以直接使用最基本的一些drawXXX()方法来实现,具有可参见我的另一篇文章(https://blog.csdn.net ...

  2. django生成文件txt、pdf(在生成 PDF 文件之前,需要安装 ReportLab 库)

    from django.http import HttpResponse def download_file(request): # Text file #response = HttpRespons ...

  3. python怎么写excel数据透视自动报表_使用Python生成自动报表(E

    使用Python生成自动报表(Excel)以邮件发送 数据分析师肯定每天都被各种各样的数据数据报表搞得焦头烂额,老板的,运营的.产品的等等.而且大部分报表都是重复性的工作,这篇文章就是帮助大家如何用P ...

  4. python根据模板生成pdf文件_使用Python生成pdf文件

    Python平台的优秀PDF报表类库Reportlab.它不属于Python的标准类库,所以必须手动下载类库包并安装: yum install python-reportlab -y 这篇文章将介绍r ...

  5. python html转pdf 调整大小_用Python将HTML转为PDF。

    上期提到了如何获取公众号文章信息,这回就说下怎么将网页转为PDF,方便平常学习. 然后扩散一下之前一个比赛的结果(华章计算机抖音大赛). 顺便谈谈自己对今后送书的一个想法. 另外之前的送书活动,有中奖 ...

  6. 在python中设置密码登录_在python中生成密码

    在python中生成密码 我想在python中生成一些字母数字密码. 一些可能的方法是: import string from random import sample, choice chars = ...

  7. python制作pdf教程_学以致用:Python爬取廖大Python教程制作pdf!

    学以致用:Python爬取廖大Python教程制作pdf! python-tutorial-pdf 当我学了廖大的Python教程后,感觉总得做点什么,正好自己想随时查阅,于是就开始有了制作PDF这个 ...

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

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

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

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

最新文章

  1. JavaScript模块化 --- Commonjs、AMD、CMD、es6 modules
  2. IT项目协调-网络整改项目
  3. 《团队——科学计算器代码设计规范》
  4. 机器学习特征构建_使用Streamlit构建您的基础机器学习Web应用
  5. 新颖的c语言题目,新颖版c语言经典习题100例(全面面)
  6. java8实战怎么样_Java8中你可能不知道的一些地方之Stream实战
  7. java springboot b2b2c shop 多用户商城系统源码(四):熔断器Hystrix
  8. 《深入理解OSGi:Equinox原理、应用与最佳实践》笔记_1_运行最简单的bundlehelloworld...
  9. layout_gravity与gravity的区别
  10. 从零开始学习makefile(7) makefile的filter的作用
  11. python是一种跨平台语言_python是跨平台的语言吗
  12. Java、JSP房产中介房屋信息管理系统
  13. 按键精灵大漠找字FindStrFast 函数封装
  14. 用python的matplotlib和numpy库绘制股票K线均线
  15. problem 1148
  16. java对接天眼查接口,天眼查提供案例方法过期最新案例
  17. Attention!当推荐系统遇见注意力机制
  18. C++虚函数概念及使用(基础)
  19. 深入浅入 ~ ConCurrentHashMap底层原理透析
  20. mysql备份数据库某表格_mysql数据库的备份以及表格数据之间的复制

热门文章

  1. CTOR对比Gavin提出的交易排序规则
  2. spring mvc 接入cas登录
  3. 三种方法实现CSS三栏布局
  4. 智慧农业物联网云平台方案
  5. dede使用方法----如何调用最新文章,最热文章,友情链接
  6. AngularJS 国际化——Angular-translate
  7. 【模式识别】学习笔记(3)【Fisher线性判别】
  8. [翻译] DTCoreText 从HTML文档中创建富文本
  9. 还原dede数据后系统基本参数空白无显示的解决方法
  10. python:ElementTree操作XML