用Python给PDF文件打水印

主要是翻译工作,然后添加了自己的部分代码。代码是在一个英文站点下载的,原作者已不可考。

 

主要使用的是ReportLab和pyPdf两个库。

 

  1. #/usr/bin/env python 
  2. # -*- coding:utf-8 -*- 
  3. # 本示例使用两个第三方库来实现为PDF文件添加文字水印 
  4. # 这两个库是pyPdf和reportlab 
  5. # 使用的Python版本是Python 2.7 
  6. # http://pybrary.net/pyPdf 
  7. # http://www.reportlab.com 
  8.  
  9. # 库文件的导入 
  10. from pyPdf import PdfFileWriter, PdfFileReader 
  11. from reportlab.pdfgen import canvas 
  12.  
  13. # 使用reportlab来创建一个PDF文件来作为一个水印文件 
  14. c= canvas.Canvas("watermark.pdf"
  15. c.setFont("Courier"60
  16.  
  17. # 设置水印文字的灰度 
  18. c.setFillGray(0.5,0.5
  19.  
  20. # 设置水印文件,并将文字倾斜45度角 
  21. c.saveState() 
  22. c.translate(500,100
  23. c.rotate(45
  24. c.drawCentredString(00"Edit By Cabins"
  25. c.drawCentredString(0300"Edit By Cabins"
  26. c.drawCentredString(0600"Edit By Cabins"
  27. c.restoreState() 
  28. c.save() 
  29.  
  30. output = PdfFileWriter() 
  31. input1 = PdfFileReader(file('原始文件.pdf''rb')) 
  32. water = PdfFileReader(file('watermark.pdf''rb')) 
  33.  
  34. # 获取pdf文件的页数 
  35. pageNum = input1.getNumPages() 
  36.  
  37. # 给每一页打水印 
  38. for i in range(pageNum): 
  39.     page = input1.getPage(i) 
  40.     page.mergePage(water.getPage(0)) 
  41.     output.addPage(page) 
  42.      
  43. # 最后输出文件 
  44. outStream = file('输出文件.pdf''wb'
  45. output.write(outStream) 
  46. outStream.close() 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章