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는 완전한 스레드 안전성을 제공하므로 고처리량 서버 환경에 이상적입니다.

사전 요구 사항

진행하기 전에 다음을 확인하십시오:

  1. Java Development Kit (JDK): Version 8 이상이 설치되어 있어야 합니다.
  2. GroupDocs.Watermark for Java: Version 24.11(또는 최신) 버전을 프로젝트에 추가합니다.
  3. 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을 지원하여 레거시와 최신 애플리케이션 모두와 호환됩니다.

실용적인 적용 사례

워터마크를 추가하면 다양한 실제 시나리오에 활용할 수 있습니다:

  1. 문서 보안: 기밀 파일에 표시를 하여 무단 공유를 방지합니다.
  2. 브랜드 보호: 마케팅 PDF에 회사 로고를 오버레이합니다.
  3. 저작권 주장: 출판물에 저자 이름이나 저작권 기호를 삽입합니다.
  4. 버전 관리: 초안 문서에 버전 번호나 날짜를 스탬프합니다.

결론

이 java pdf watermark example을 따라 하면 이제 GroupDocs.Watermark for Java를 사용한 PDF에 워터마크 추가를 위한 완전하고 프로덕션 준비된 솔루션을 갖게 됩니다. 텍스트, 이미지, 회전 및 크기를 사용자 정의하고 이미지 차원에 따라 조건부로 워터마크를 적용할 수 있으며, 프로세스는 빠르고 메모리 효율적입니다.


Last Updated: 2026-08-09
Tested With: GroupDocs.Watermark 24.11 for Java
Author: GroupDocs

관련 튜토리얼