pdf-watermark은(는) 무엇을 하나요?
PDF에 워터마크, 페이지 번호, 머리글, 바닥글을 추가합니다.
개요
이 스킬은 PDF 문서에 다양한 오버레이를 추가하는 기능을 제공합니다:
- 워터마크: 텍스트 또는 이미지 기반 워터마크를 페이지에 추가합니다.
- 페이지 번호: 문서의 각 페이지에 페이지 번호를 추가합니다.
- 머리글: 각 페이지 상단에 사용자 정의 텍스트를 추가합니다.
- 바닥글: 각 페이지 하단에 사용자 정의 텍스트를 추가합니다.
사용법
이 스킬을 사용하려면 요청을 적절한 형식으로 전송하세요:
POST /watermark
Content-Type: application/json
{
"input": {
"pdf": "base64_encoded_pdf_content",
"config": {
"type": "watermark",
"text": "기밀",
"opacity": 0.3,
"rotation": 45
}
}
}
구성 옵션
| 파라미터 | 유형 | 기본값 | 설명 |
|---|---|---|---|
type | 문자열 | watermark | 추가할 오버레이 유형 (watermark, page_number, header, footer) |
text | 문자열 | "" | 표시할 텍스트 (워터마크, 머리글, 바닥글) |
opacity | 숫자 | 0.5 | 워터마크의 불투명도 (0.0 ~ 1.0) |
rotation | 숫자 | 0 | 워터마크의 회전 각도 (도) |
font_size | 숫자 | 24 | 텍스트의 글꼴 크기 |
color | 문자열 | "#000000" | 텍스트의 색상 (헥스값) |
position | 문자열 | "center" | 오버레이 위치 (center, top_left, top_right, bottom_left, bottom_right, header, footer) |
예시
텍스트 워터마크 추가
import requests
import base64
with open('document.pdf', 'rb') as f:
pdf_content = base64.b64encode(f.read()).decode('utf-8')
response = requests.post('http://localhost:8000/watermark', json={
'input': {
'pdf': pdf_content,
'config': {
'type': 'watermark',
'text': '초안',
'opacity': 0.4,
'rotation': 45,
'font_size': 48
}
}
})
with open('watermarked.pdf', 'wb') as f:
f.write(base64.b64decode(response.json()['output']['pdf']))
페이지 번호 추가
import requests
import base64
with open('document.pdf', 'rb') as f:
pdf_content = base64.b64encode(f.read()).decode('utf-8')
response = requests.post('http://localhost:8000/watermark', json={
'input': {
'pdf': pdf_content,
'config': {
'type': 'page_number',
'position': 'bottom_right',
'font_size': 10
}
}
})
with open('numbered.pdf', 'wb') as f:
f.write(base64.b64decode(response.json()['output']['pdf']))
머리글 및 바닥글 추가
curl -X POST http://localhost:8000/watermark \
-H "Content-Type: application/json" \
-d '{
"input": {
"pdf": "$(base64 -w0 input.pdf)",
"config": {
"type": "header",
"text": "기밀 문서",
"font_size": 14,
"color": "#FF0000"
}
}
}'
종속성
- Python 3.8+
- PyMuPDF (fitz)
- requests (REST API 호출 시)
구현 세부사항
이 스킬은 PDF 조작에 PyMuPDF 라이브러리를 사용합니다. 워터마크를 추가할 때:
- 원본 PDF가 메모리에 로드됩니다.
- 각 페이지에 대해 지정된 구성에 따라 오버레이가 생성됩니다.
- 오버레이는 투명도와 회전을 적용하여 페이지에 그려집니다.
- 수정된 PDF가 반환됩니다.
환경 변수
| 변수명 | 설명 | 기본값 |
|---|---|---|
PDF_WATERMARK_SERVER_PORT | API 서버 포트 | 8000 |
PDF_WATERMARK_MAX_FILE_SIZE_MB | 최대 파일 크기 (MB) | 50 |
주의사항
- PDF 파일 크기는 환경 변수로 설정된 제한을 초과하면 안 됩니다.
- 워터마크 텍스트에는 유니코드 문자를 사용할 수 있습니다.
- 이미지 기반 워터마크의 경우 Base64로 인코딩된 이미지 데이터가 필요합니다.