学习利用ReportLab生成PDF报表 -- 准备工作及Demo

本文介绍了如何使用ReportLab库生成PDF报表,包括安装ReportLab及其依赖,解决Demo运行中的编码和IO问题。重点讲解了从mongodb获取数据,用RML创建模板,以及处理中文字符的方法,并提供了简化版的Demo代码示例。
摘要由CSDN通过智能技术生成
  1. 官方Demo
    官网提供了一个demo,下载地址:
    http://www.reportlab.com/static/cms/files/RLtutorial.zip
    在运行前需要安装相关的依赖包。在ReportLab网站注册并登陆后会有更完整的文档。

    • rlextra: 安装该包前需要注册ReportLab用户,登陆后才能下载。
      pip install rlextra -i https://www.reportlab.com/pypi
      在下载完成rlextra后会自动下载其他依赖包。
    • preppy: 一种预处理程序,利用其来读取模板template。
      参考: https://bitbucket.org/rptlab/preppy
    • reportlab
    • pyRXP
    • 等等

    安装完成相关包后执行文件夹下product_catalog.py,仍发现有很多错误,主要集中在编码,StringIO/BytesIO(Demo文件中是用了StringIO作为buf,但执行报错,查看相关源码文件后发现需要用BytesIO。)上,除此之外Demo中的数据是通过解析XML文件得到的,可能以后使用中不会使用XML来获取数据,所以决定自己重新写一个新的Demo。

  2. 自己编写的SimpleDemo
    简单的生成一份pdf报表主要需要三方面的准备:数据,模板文件(prep, rml),相关简单工具方法。编写模板文件和数据准备相比较更重要,更繁琐,而简单的编写工具方法比较轻松,不过后期肯定需要优化。

    • 数据: 从mongodb数据库中获取。
    • 模板文件: 利用RML(Report Markup Language)编写模板,可在其中嵌套Python代码,详细文档可登陆ReportLab后下载。下面是一个最基本的RML模板(取自官方RML2PDF with Django Demo):
<!DOCTYPE document SYSTEM "rml.dtd">
<document filename="hello.pdf">
    <template 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值