如何使用Python编程为多个PDF文件添加水印或印章?
时间: 2024-11-27 18:10:06 浏览: 18
在Python中,可以使用一些第三方库如`PyPDF2`和`PIL`(Python Imaging Library 或者其后代 `Pillow`)来给PDF文件添加水印或印章。这里是一个基本步骤:
1. **安装所需库**:
首先,需要通过pip安装这两个库:
```
pip install PyPDF2 Pillow
```
2. **读取PDF**:
使用`PyPDF2`加载PDF文件,比如:
```python
from PyPDF2 import PdfFileReader, PdfFileWriter
input_pdf = PdfFileReader(open('input.pdf', 'rb'))
```
3. **创建水印/印章图像**:
利用`PIL`创建或加载图片作为水印。例如,如果水印是一个文本字符串,可以用`ImageDraw`模块创建:
```python
from PIL import Image, ImageDraw, ImageFont
watermark_text = "Watermark"
font = ImageFont.truetype("arial.ttf", size=30)
img = Image.new('RGBA', (100, 50), color=(255, 255, 255, 0))
draw = ImageDraw.Draw(img)
draw.text((10, 10), watermark_text, font=font, fill=(0, 0, 0, 255))
```
4. **将水印应用到每一页**:
如果是简单文字水印,逐页复制并合并PDF,然后合并水印:
```python
output_writer = PdfFileWriter()
for page_num in range(input_pdf.getNumPages()):
input_page = input_pdf.getPage(page_num)
# 将水印复制到当前页
watermarked_page = img.resize(input_page.mediaBox.size).convert("RGB")
input_page.mergePage(watermarked_page)
output_writer.addPage(input_page)
```
5. **保存带水印的PDF**:
最后,将处理过的PDF写入新的文件:
```python
with open('output_with_watermark.pdf', 'wb') as output_file:
output_writer.write(output_file)
```
6. **注意事项**:
- 水印图片的大小应适应页面大小,避免遮盖重要内容。
- 如果印章是一个复杂的图形,可能需要先转换成位图图像。
阅读全文