用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() 

 

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