主要是翻译工作,然后添加了自己的部分代码。代码是在一个英文站点下载的,原作者已不可考。
主要使用的是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()