Python 프로그램을 통해 PDF에 이미지 워터마크 추가
PDF에 이미지 워터마크를 추가하는 기능은 매우 실용적입니다. 예를 들어 문서에 회사나 제품 로고를 추가해 브랜드 효과를 높이고, 타인이 임의로 도용하는 것을 방지할 수 있습니다. 또는 문서에 그림 워터마크를 삽입하여 문서의 역할이나 상태를 표시할 수 있습니다. 그림 워터마크를 추가할 때 단일 그림 워터마크를 추가하거나 여러 개의 반복 워터마크를 추가할 수 있습니다. 다음은 Python 플랫폼을 예로 들어 PDF에 이미지 워터마크를 추가하는 방법을 소개합니다.
도구
Visual Studio Code
이 라이브러리는 여러 PDF 파일 병합, PDF를 이미지로 변환 등과 같이 Python 플랫폼에서 PDF 문서 생성, 편집 또는 변환을 지원합니다. 더 많은 샘플 코드를 보려면 Spire.PDF for Python를 다운로드하세요.
설치 방법
VS Code에 Spire.PDF for Python 및 plum-dispatch v1.7.4를 설치합니다.
먼저 Python을 다운로드하여 설치합니다.
VS Code에서 "Extensions"를 클릭하고 "Python"을 검색하여 설치합니다.
"Explorer" - "NO FOLRDER OPENED" - "Open Folder"를 클릭합니다.
폴더를 선택하고 그 안에 ".py" 파일을 만듭니다.
"Terminal" - "New Terminal"을 클릭합니다.
명령을 입력하다:pip install Spire.PDF
PDF에 단일 이미지 워터마크 추가
먼저 PdfDocument 인스턴스가 생성되고 기존 PDF 문서가 로드됩니다. 이 문서의 페이지를 반복하여 각 페이지와 너비 및 높이를 가져옵니다. 그런 다음 워터마크 이미지를 로드하고 너비와 높이를 가져옵니다. PdfPageBase.Canvas.DrawImage() 메서드를 호출하여 문서의 각 페이지 중간에 이미지 워터마크를 그립니다. 구체적인 내용은 아래 코드와 주석을 참고해주세요.
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument 클래스의 객체 생성
pdf = PdfDocument()
# PDF 문서 로드
pdf.LoadFromFile("Sample.pdf")
# 워터마크 이미지 로드
image = PdfImage.FromFile("watermark.png")
# 이미지의 너비와 높이 가져오기
imageWidth = float(image.Width)
imageHeight = float(image.Height)
# 문서의 각 페이지에 대해 반복
for i in range(pdf.Pages.Count):
# 페이지 가져오기
page = pdf.Pages.get_Item(i)
# 워터마크의 투명도 설정
page.Canvas.SetTransparency(0.3)
# 페이지의 너비와 높이 가져오기
pageWidth = page.ActualSize.Width
pageHeight = page.ActualSize.Height
# 페이지에 워터마크 이미지 그리기
page.Canvas.DrawImage(image, pageWidth/2 - imageWidth/2, pageHeight/2 - imageHeight/2, imageWidth, imageHeight)
# 문서 저장
pdf.SaveToFile("SingleImageWatermark.pdf")
pdf.Close()PDF에 여러 개의 중복 이미지 워터마크 추가
여러 개의 반복 워터마크를 그리는 경우 PdfTilingBrush 개체를 만들어야 합니다. 먼저 이 브러시에 이미지를 그린 다음 페이지에 이미지를 그립니다. 워터마크 수는 개체 크기를 조정하여 설정할 수 있습니다. 구체적인 내용은 아래 코드와 주석을 참고해주세요.
from spire.pdf.common import *
from spire.pdf import *
# PdfDocument 클래스의 객체 생성
pdf = PdfDocument()
# PDF 문서 로드
pdf.LoadFromFile("Sample.pdf")
# 워터마크 이미지 로드
image = PdfImage.FromFile("watermark.png")
# 문서의 각 페이지에 대해 반복
for i in range(pdf.Pages.Count):
# 페이지 가져오기
page = pdf.Pages.get_Item(i)
# PdfTilingBrush 클래스의 객체 생성 및 크기 설정
brush = PdfTilingBrush(SizeF(page.Canvas.Size.Width / float(3), page.Canvas.Size.Height / float(3)))
# 워터마크의 투명도 설정
brush.Graphics.SetTransparency(0.3)
brush.Graphics.Save()
# 좌표를 지정된 위치로 이동
brush.Graphics.TranslateTransform(brush.Size.Width/2 - image.Width/2, brush.Size.Height/2 - image.Height/2)
# 브러시 위에 워터마크 이미지 그리기
brush.Graphics.DrawImage(image, 0.0, 0.0, float(image.Width), float(image.Height))
brush.Graphics.Restore()
# 페이지에 워터마크 그리기
page.Canvas.DrawRectangle(brush, RectangleF(PointF(0.0, 0.0), page.Canvas.Size))
# 문서 저장
pdf.SaveToFile("RepeatingImageWatermark.pdf", FileFormat.PDF)
pdf.Close()