主要是翻譯工作,然後添加了自己的部分代碼。代碼是在一個英文站點下載的,原作者已不可考。
主要使用的是ReportLab和pyPdf兩個庫。
- #/usr/bin/env python
- # -*- coding:utf-8 -*-
- # 本示例使用兩個第三方庫來實現爲PDF文件添加文字水印
- # 這兩個庫是pyPdf和reportlab
- # 使用的Python版本是Python 2.7
- # http://pybrary.net/pyPdf
- # http://www.reportlab.com
- # 庫文件的導入
- from pyPdf import PdfFileWriter, PdfFileReader
- from reportlab.pdfgen import canvas
- # 使用reportlab來創建一個PDF文件來作爲一個水印文件
- c= canvas.Canvas("watermark.pdf")
- c.setFont("Courier", 60)
- # 設置水印文字的灰度
- c.setFillGray(0.5,0.5)
- # 設置水印文件,並將文字傾斜45度角
- c.saveState()
- c.translate(500,100)
- c.rotate(45)
- c.drawCentredString(0, 0, "Edit By Cabins")
- c.drawCentredString(0, 300, "Edit By Cabins")
- c.drawCentredString(0, 600, "Edit By Cabins")
- c.restoreState()
- c.save()
- output = PdfFileWriter()
- input1 = PdfFileReader(file('原始文件.pdf', 'rb'))
- water = PdfFileReader(file('watermark.pdf', 'rb'))
- # 獲取pdf文件的頁數
- pageNum = input1.getNumPages()
- # 給每一頁打水印
- for i in range(pageNum):
- page = input1.getPage(i)
- page.mergePage(water.getPage(0))
- output.addPage(page)
- # 最後輸出文件
- outStream = file('輸出文件.pdf', 'wb')
- output.write(outStream)
- outStream.close()