使用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)
时间: 2024-08-28 14:38:01

使用Python生成pdf文件的相关文章

Python绘制PDF文件~超简单的小程序

Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http://www.reportlab.com/docs/reportlab-userguide.pdf 我们看看这个网页上的原数据: http://www.swpc.noaa.gov/ftpdir/weekly/Predict.txt 代码: #-*- coding: utf-8 -*- # 1. 用于下载原

用python操作PDF文件

本次学习的内容主要是:从PDF读取文本内容和从已经有的文档生成新的PDF. 需要用到的模块是PyPDF2. 首先要在命令行中运行pip install PyPDF2. 一.从PDF读取文本 PyPDF2无法从pdf文档中提取图像,图表和其他媒体,但是它可以提取文本,并且将文本返回为python字符串.import PyPDF2# ===============从pdf中提取文本===========pdffile = open(r'E:\python让繁琐的工作自动化\13_处理pdf和word

thinkphp整合系列之tcpdf类生成pdf文件

php生成pdf文件的需求是不怎么常见的:当然也是有的: 既然已经整合使用了:那就写篇博客来讲解下吧: 示例项目:http://git.oschina.net/shuaibai123/thinkphp-bjyadmin 一:引入tcpdf /ThinkPHP/Library/Vendor/Tcpdf 把tcpdf整个目录拷到自己的项目中: 二:函数 /Application/Common/Common/function.php /** * 生成pdf * @param  string $html

.NET生成PDF文件

C#未借助第三方组件,自己封装通用类,生成PDF文件. 调用方式: //路径 string path = @"C:\yuannwu22.pdf"; //内容 string strContent = "ddd3232342434d"; new PDFGenerator.PDFGenerator(path, strContent).Create(); 下载地址: http://pan.baidu.com/s/1kTIchev?

ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendor('mpdf.mpdf'); //设置中文编码 $mpdf=new \mPDF('zh-cn','A4', 0, '宋体', 0, 0); //html内容 $html='<h1><a name="top"></a>一个PDF文件</h1>

MFC使用Haru free pdf lib生成pdf文件

MFC使用Haru free pdf lib生成pdf文件 我们先创建一个项目MFCPDFDemo,在上面添加一个编辑框和一个按钮: haru free pdf类库下载地址 这里直接下载dll,如果想以静态库的方式使用,得下载源码自己编译.然后把这个dll添加到项目中,怎么添加就不说了吧,还是说一下吧,万一有新手看不懂呢.解压后我们要用到三个东西:libhpdf.dlllibhpdf.libinclude整个文件夹解压后复制libhpdf.dll到项目的release和debug目录下:libh

怎么用PHP在HTML中生成PDF文件

原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PHP并借助FPDF来生成PDF文件.但是如今,已经有很多函数库可以使用了,并且能够从你提供的HTML文件生成PDF文档.这让原先耗时的工作变得非常简单了. FPDF是很早就被使用的,其特点如下: FPDF FPDF是一个允许使用纯PHP生成PDF文档的PHP类,换句话说,没有使用PDFlib 函数库.

史上最强php生成pdf文件,html转pdf文件方法

之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有达到我要的求. pdflib,FPDF 这两个方法是需要编写程序去生成pdf的,就也是讲不支持直接把html页面转换成pdf:html2pdf这个虽然可以把html页面转换成pdf文 件,但是它只能转换一般简单的html代码,如果你的html内容要的是通过后台新闻编辑器排版的那肯定不行的. 纠结了半

使用flying-saucer,利用HTML来生成PDF文件(裴东辉)

1.导入maven依赖 <flyingSaucer.version>9.1.0</flyingSaucer.version> <!-- flying-saucer --> <dependency>    <groupId>org.xhtmlrenderer</groupId>     <artifactId>flying-saucer-pdf</artifactId>     <version>${