Python使用reportlab将目录下所有的文本文件打印成pdf的方法

时间:2022-04-08 03:05:02

本文实例讲述了Python使用reportlab将目录下所有的文本文件打印成pdf的方法。分享给大家供大家参考。具体实现方法如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding: utf8 -*-
#~ #----------------------------------------------------------------------
import wlab #pip install wlab
import reportlab.pdfbase.ttfonts
#reportlab.pdfbase.pdfmetrics.registerFont(reportlab.pdfbase.ttfonts.TTFont('song', '/usr/share/fonts/cn/msjh.ttf'))
#import reportlab.lib.fonts
#
from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
#
def file2pdf(FileName):
  fpi=FileName.find('.')
  if (fpi>0):
    outputfn=FileName[0:fpi]+'.pdf'
  else:
    outputfn=FileName+'.pdf'
  c = canvas.Canvas(outputfn)
  #c.setFont('song',10)
  textobject = c.beginText()
  textobject.setTextOrigin(inch,11*inch)
  file=open(FileName)
  n=0
  for line in file:
    n=n+1
    if(n<10):
      nstr='0'+str(n)
    else:
      nstr=str(n)
    line=nstr+': '+line.replace('  ','  ')
    textobject.textLine(line.rstrip())
  c.drawText(textobject)
  c.showPage()
  c.save()
#
FileList=wlab.GetFileList('.',FlagStr=['.txt'])
#
for FileName in FileList:
  file2pdf(FileName)

希望本文所述对大家的Python程序设计有所帮助。