GroupDocs.Watermark for Java를 사용하여 PDF에 워터마크 추가
소개
오늘날 디지털 환경에서 지적 재산을 보호하는 것은 매우 중요하며, PDF에 워터마크 추가는 가장 효과적인 방법 중 하나입니다. 이 튜토리얼에서는 GroupDocs.Watermark for Java를 사용하여 텍스트와 이미지 워터마크를 PDF 파일에 삽입하는 방법을 단계별로 안내합니다. 완료하면 다음을 수행할 수 있습니다:
- 텍스트 및 이미지 워터마크 초기화
- 이미지 크기에 따라 조건부로 워터마크 적용
- 워터마크가 포함된 PDF 저장하면서 원본 품질 유지
문서를 보호할 준비가 되셨나요? 시작해봅시다!
빠른 답변
- Java에서 PDF에 워터마크를 추가하는 라이브러리는? GroupDocs.Watermark for Java.
- 텍스트와 이미지 워터마크를 모두 추가할 수 있나요? 예, API는 단일 실행에서 두 유형을 모두 지원합니다.
- 개발에 라이선스가 필요합니까? 무료 체험으로 테스트가 가능하며, 프로덕션에서는 영구 라이선스가 필요합니다.
- 지원되는 파일 형식은 무엇입니까? PDF, DOCX, PPTX 및 이미지 등을 포함해 30개 이상의 형식을 지원합니다.
- 처리할 수 있는 PDF의 최대 크기는? 전체 파일을 메모리에 로드하지 않고도 최대 2,000페이지까지 처리할 수 있습니다.
PDF에 워터마크 추가란?
PDF에 워터마크 추가는 텍스트 문자열이나 로고와 같은 가시적 또는 무시적 표시를 PDF 파일에 직접 삽입하여 소유권, 기밀성 또는 브랜드를 나타내는 것을 의미합니다. 이 과정은 원본 콘텐츠를 그대로 유지하면서 문서의 시각 레이어를 수정합니다.
왜 GroupDocs.Watermark for Java를 사용해야 하나요?
GroupDocs.Watermark는 30개 이상의 문서 형식을 지원하고, 단일 패스에서 2,000페이지까지의 PDF를 처리할 수 있으며, 문서당 500개 이상의 워터마크를 추가해도 성능 저하가 거의 없습니다. API는 완전한 스레드 안전성을 제공하므로 고처리량 서버 환경에 이상적입니다.
사전 요구 사항
진행하기 전에 다음을 확인하십시오:
- Java Development Kit (JDK): Version 8 이상이 설치되어 있어야 합니다.
- GroupDocs.Watermark for Java: Version 24.11(또는 최신) 버전을 프로젝트에 추가합니다.
- Build tool: Maven을 권장하지만 직접 JAR를 다운로드해도 됩니다.
환경 설정
Maven 구성
Add the GroupDocs repository and dependency to your pom.xml file:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/watermark/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-watermark</artifactId>
<version>24.11</version>
</dependency>
</dependencies>
직접 다운로드
또는 공식 릴리스 페이지에서 최신 JAR를 다운로드하십시오: GroupDocs.Watermark for Java releases.
라이선스 획득
무료 체험 또는 임시 라이선스를 원하시면 라이선스 포털을 방문하십시오: GroupDocs Licensing. 프로덕션 배포에서는 모든 체험 제한을 해제하기 위해 구매한 라이선스를 사용해야 합니다.
GroupDocs.Watermark for Java 설정
라이브러리를 추가한 후, Java 소스 파일에 필요한 클래스를 import합니다:
import com.groupdocs.watermark.Watermarker;
이 import 블록은 프로젝트 전반에서 워터마크 관련 API를 사용할 수 있게 합니다.
구현 가이드
구현을 논리적인 섹션으로 나누어 각각 특정 질문에 답하도록 하겠습니다.
Java에서 PDF에 워터마크를 추가하려면 어떻게 하나요?
Watermarker는 문서를 로드하고 워터마크를 적용할 수 있는 주요 클래스입니다.new Watermarker("input.pdf")로 PDF를 로드한 뒤, 워터마크 객체를 적용하고 save("output.pdf")를 호출합니다. 이 두 단계 접근 방식은 텍스트와 이미지 워터마크를 단일 패스로 처리하여 파일을 워터마크가 포함된 PDF 저장을 효율적으로 수행합니다.
텍스트 워터마크 초기화
정의 앵커: TextWatermark는 문서 내 페이지, 이미지 또는 벡터 그래픽에 배치할 수 있는 텍스트 오버레이를 나타내는 클래스입니다.
단계 1: TextWatermark 인스턴스 생성
원하는 텍스트와 폰트 설정으로 TextWatermark를 생성합니다:
// Create a text watermark with custom settings
TextWatermark textWatermark = new TextWatermark("Protected image", new Font("Arial", 8));
이 예제는 Arial 폰트, 크기 8로 워터마크 텍스트를 “Protected image”로 설정합니다.
단계 2: 정렬 설정
워터마크를 수평 및 수직으로 중앙에 배치하여 균일한 위치를 지정합니다:
// Align watermark to the center of images
textWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
textWatermark.setVerticalAlignment(VerticalAlignment.Center);
단계 3: 워터마크 회전
워터마크를 45도 회전시켜 제거를 더 어렵게 합니다:
// Rotate the watermark by 45 degrees
textWatermark.setRotateAngle(45);
단계 4: 크기 구성
대상 이미지 크기에 비례하도록 워터마크를 스케일링합니다:
// Scale watermark based on parent image size
textWatermark.setSizingType(SizingType.ScaleToParentDimensions);
textWatermark.setScaleFactor(1);
이미지 워터마크 초기화
정의 앵커: ImageWatermark는 문서 내용 위에 워터마크로 오버레이될 이미지(PNG, JPEG, BMP 등)를 캡슐화합니다.
단계 1: 이미지 파일 로드
디스크에서 워터마크 이미지를 로드합니다:
// Load an image file as a watermark
ImageWatermark imageWatermark = new ImageWatermark("YOUR_DOCUMENT_DIRECTORY\ProtectJpg");
플레이스홀더 경로를 실제 로고 또는 인장 위치로 교체하십시오.
단계 2: 정렬 설정
시각적 균형을 위해 이미지 워터마크를 중앙에 배치합니다:
// Align image watermark to the center
imageWatermark.setHorizontalAlignment(HorizontalAlignment.Center);
imageWatermark.setVerticalAlignment(VerticalAlignment.Center);
단계 3: 이미지 워터마크 회전
시각적 변화를 주기 위해 –30도 회전시킵니다:
// Rotate the image watermark by -45 degrees
textWatermark.setRotateAngle(-45);
단계 4: 크기 구성
이미지 크기를 기본 이미지 너비의 백분율로 정의합니다:
// Scale the image watermark relative to its parent dimensions
imageWatermark.setSizingType(SizingType.ScaleToParentDimensions);
imageWatermark.setScaleFactor(1);
문서 내 이미지에 워터마크 추가
정의 앵커: Watermarker는 문서를 로드하고, 요소에 접근하며, 워터마크를 파일에 다시 쓰는 핵심 클래스입니다.
단계 1: 문서 열기
소스 PDF 경로를 사용해 Watermarker를 인스턴스화합니다:
// Open the PDF containing images for watermarking
Watermarker watermarker = new Watermarker("YOUR_DOCUMENT_DIRECTORY\document.pdf");
단계 2: 이미지 가져오기
워터마크를 적용할 수 있는 PDF의 모든 이미지를 수집합니다:
// Get a collection of all images within the PDF
WatermarkableImageCollection images = watermarker.getImages();
단계 3: 조건부 워터마크 추가
각 이미지에 대해 차원을 확인합니다; 너비가 300 px를 초과하면 텍스트 워터마크를 적용하고, 그렇지 않으면 이미지 워터마크를 사용합니다:
for (int i = 0; i < images.getCount(); i++) {
// Check if the image exceeds specific size criteria
if (images.get_Item(i).getWidth() > 100 && images.get_Item(i).getHeight() > 100) {
// Alternate between text and image watermarks
if (i % 2 == 0) {
images.get_Item(i).add(textWatermark);
} else {
images.get_Item(i).add(imageWatermark);
}
}
}
이 조건부 로직은 적절한 이미지에만 더 눈에 띄는 텍스트 오버레이를 적용하여 처리 시간을 최적화합니다.
단계 4: 이미지 리소스 해제
처리 후 이미지 워터마크 객체를 닫아 네이티브 리소스를 해제합니다:
// Close the image watermark instance after use
imageWatermark.close();
단계 5: 변경 사항 저장
문서를 새 파일에 저장하여 변경 사항을 영구히 적용합니다:
// Save the PDF with added watermarks in a new file
watermarker.save("YOUR_OUTPUT_DIRECTORY\document.pdf");
결과 파일은 배포 준비가 된 워터마크가 포함된 PDF 저장 버전입니다.
단계 6: 정리
Watermarker 인스턴스를 해제하여 메모리 누수를 방지합니다:
// Close the main watermarker to release document resources
watermarker.close();
일반적인 문제 및 해결 방법
- 라이선스 오류:
License.setLicense("license_file_path")를 통해 라이선스 파일 경로가 올바르게 설정되었는지 확인하십시오. 라이선스가 없거나 만료되면LicenseException이 발생합니다. - 대형 PDF: 1,000페이지를 초과하는 문서의 경우
watermarker.setStreamMode(true)를 호출하여 스트리밍 모드를 활성화하면 메모리 사용량을 낮출 수 있습니다. - 지원되지 않는 이미지 형식: GroupDocs.Watermark는 PNG, JPEG, BMP, GIF를 지원합니다. 다른 형식은 로드하기 전에 PNG로 변환하면
UnsupportedFormatException을 피할 수 있습니다.
자주 묻는 질문
Q: 비밀번호로 보호된 PDF에 워터마크를 추가할 수 있나요?
A: 예. new Watermarker("file.pdf", "password")로 문서를 열고 일반적으로 워터마크를 적용하면 됩니다.
Q: API가 여러 PDF에 대한 배치 처리를 지원하나요?
A: 물론입니다. PDF 폴더를 순회하면서 각 파일에 대해 Watermarker를 인스턴스화하고 동일한 워터마크 객체를 적용한 뒤 결과를 저장합니다.
Q: 단일 PDF에 추가할 수 있는 워터마크 최대 개수는?
A: 최적화된 렌더링 엔진 덕분에 라이브러리는 문서당 500개 이상의 워터마크를 성능 저하 없이 처리할 수 있습니다.
Q: 워터마크를 보이지 않게(메타데이터만) 만들 수 있나요?
A: 예. 워터마크 객체에 setOpacity(0) 메서드를 사용하면 포렌식 추적을 위해 보이지 않게 삽입할 수 있습니다.
Q: 공식적으로 지원되는 Java 버전은?
A: GroupDocs.Watermark for Java는 JDK 8, 11, 17을 지원하여 레거시와 최신 애플리케이션 모두와 호환됩니다.
실용적인 적용 사례
워터마크를 추가하면 다양한 실제 시나리오에 활용할 수 있습니다:
- 문서 보안: 기밀 파일에 표시를 하여 무단 공유를 방지합니다.
- 브랜드 보호: 마케팅 PDF에 회사 로고를 오버레이합니다.
- 저작권 주장: 출판물에 저자 이름이나 저작권 기호를 삽입합니다.
- 버전 관리: 초안 문서에 버전 번호나 날짜를 스탬프합니다.
결론
이 java pdf watermark example을 따라 하면 이제 GroupDocs.Watermark for Java를 사용한 PDF에 워터마크 추가를 위한 완전하고 프로덕션 준비된 솔루션을 갖게 됩니다. 텍스트, 이미지, 회전 및 크기를 사용자 정의하고 이미지 차원에 따라 조건부로 워터마크를 적용할 수 있으며, 프로세스는 빠르고 메모리 효율적입니다.
Last Updated: 2026-08-09
Tested With: GroupDocs.Watermark 24.11 for Java
Author: GroupDocs