[Python] PDF 문서에 워터마크 추가
PDF에 워터마크를 삽입하는 것은 일반적으로 사용되는 기능입니다. 일반적으로 더 중요하거나 저작권과 저자를 표시해야 하는 문서를 생성할 때 사용됩니다. 여기에서는 Python 코드(텍스트 워터마크 및 이미지 워터마크 포함)를 통해 PDF 문서에 워터마크를 추가하는 방법을 공유하겠습니다. 이 방법은 일괄적으로 워터마크를 추가하는 데에도 적합합니다.
도구
Visual Studio Code
다운로드 링크: Spire.PDF for Python
평가판 링크: Temporary License
설치 방법
Python 을 다운로드하여 설치한 후 VS Code에서 Extensions 을 클릭하고 Python 을 검색하여 설치합니다.
Explorer - NO FOLRDER OPENED - Open Folder
폴더를 선택하고 '.py' 파일을 추가합니다.
Terminal - New Terminal
다음 명령을 입력하여 Spire.PDF for Python 및 plum-dispatch v1.7.4를 설치합니다.
pip install Spire.PDF
샘플 코드
PDF에 텍스트 워터마크 추가
전체 코드:
from spire.pdf import *
from spire.pdf.common import *
import math
# PdfDocument 클래스의 객체를 생성하고 PDF 문서를 로드합니다
pdf = PdfDocument()
pdf.LoadFromFile("C:/Users/Administrator/Desktop/Sample.pdf")
# PdfTrueTypeFont 클래스의 객체를 생성합니다
font = PdfTrueTypeFont("Arial", 48.0, 0, True)
#워터마크 텍스트 설정
text = "CONFIDENTIAL"
#워터마크 위치 계산
set1 = float (font.MeasureString(text).Width * math.sqrt(2) / 4)
set2 = float (font.MeasureString(text).Height * math.sqrt(2) / 4)
#모든 페이지를 반복
for i in range(pdf.Pages.Count):
#페이지 가져오기
page = pdf.Pages.get_Item(i)
#워터마크 투명도 설정
page.Canvas.SetTransparency(0.5)
#페이지 좌표계를 지정 위치로 이동
page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - set1 - set2,
page.Canvas.Size.Height / 2 + set1 - set2)
#시계 반대 방향으로 좌표계를 45도 회전
page.Canvas.RotateTransform(-45.0)
#워터마크 그리기
page.Canvas.DrawString(text, font, PdfBrushes.get_LightPink(), 0.0, 0.0)
#결과 문서 저장
pdf.SaveToFile("C:/Users/Administrator/Desktop/TextWatermark.pdf")
pdf.Close()코드 설명:
위 코드에서는 워터마크를 그리는 데 주로 PdfPageBase.Canvas.DrawString() 메서드를 사용했습니다. 그릴 때 PdfCanvas 아래의 메소드를 사용하여 필요에 따라 워터마크의 크기, 위치, 투명도, 회전 각도, 색상 등을 설정할 수 있습니다. 구체적인 설명은 코드 주석을 참조하세요.
PDF에 이미지 워터마크 추가
전체 코드:
from spire.pdf import *
from spire.pdf.common import *
# PdfDocument 클래스의 객체를 생성하고 PDF 문서를 로드합니다
pdf = PdfDocument()
pdf.LoadFromFile("C:/Users/Administrator/Desktop/Sample.pdf")
#이미지 불러오기
image = PdfImage.FromFile("C:/Users/Administrator/Desktop/image.png")
#이미지의 폭과 높이 가져오기
imageWidth = float(300)
imageHeight = float(300)
#모든 페이지를 반복
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("C:/Users/Administrator/Desktop/ImageWatermark.pdf")
pdf.Close()코드 설명:
텍스트 워터마크를 추가하는 코드와 유사하게 그림을 그릴 때 PdfCanvas 아래의 메서드를 사용하여 필요에 따라 워터마크의 크기, 위치 및 기타 정보를 설정할 수도 있습니다. 그러나 그림을 그릴 때 PdfPageBase.Canvas.DrawImage() 메서드를 사용하여 로드된 이미지를 PDF 페이지에 워터마크로 추가합니다. 자세한 설명은 코드 주석을 참조하세요.
