GroupDocs.Watermark for Java를 사용하여 PDF에 워터마크 추가

이 가이드에서는 GroupDocs.Watermark Java SDK를 사용하여 PDF 파일에 워터마크를 추가하는 방법을 배웁니다. 디스크, 스트림 또는 비밀번호로 보호된 소스에서 문서를 로드하고, 텍스트 또는 이미지 워터마크를 적용한 뒤, 업데이트된 PDF를 저장하는 과정을 단계별로 안내합니다. 배치 프로세서든 단일 파일 서비스든, 이 단계들은 신뢰할 수 있는 프로덕션 준비 솔루션을 제공합니다.

빠른 답변

  • 비밀번호로 보호된 PDF에 워터마크를 추가할 수 있나요? 예 – 문서를 로드할 때 비밀번호를 전달하고, 그 후 정상적으로 워터마크를 적용하면 됩니다.
  • 어떤 형식에 워터마크를 적용할 수 있나요? PDF, DOCX, PPTX 및 이미지 등을 포함해 30가지 이상의 형식을 지원합니다.
  • 개발에 라이선스가 필요합니까? 테스트용 임시 라이선스로 충분하지만, 프로덕션에서는 정식 라이선스가 필요합니다.
  • 필요한 Java 버전은 무엇인가요? Java 8 이상을 지원합니다.
  • 스트리밍을 지원하나요? 물론입니다 – InputStream에서 로드하고 OutputStream에 저장하여 파일 시스템을 거치지 않을 수 있습니다.

PDF에 워터마크 추가란 무엇인가요?

PDF에 워터마크 추가는 PDF 문서의 각 페이지에 반투명 텍스트 또는 이미지를 겹쳐서 소유권, 기밀성 또는 브랜드를 표시하는 과정을 의미합니다. GroupDocs.Watermark for Java는 위치 지정, 불투명도 및 페이지 범위 선택을 자동으로 처리하는 단일 호출 API를 제공합니다.

왜 GroupDocs.Watermark for Java를 사용해야 하나요?

GroupDocs.Watermark는 35개 이상의 파일 형식을 지원하며 일반 서버급 CPU에서 500페이지 PDF를 2초 미만에 처리할 수 있습니다. 이 라이브러리는 메모리 내에서만 작동하므로 Microsoft Office나 Adobe Acrobat을 설치할 필요가 없습니다. API가 스레드 안전(thread‑safe)하여 고처리량 웹 서비스에 이상적입니다.

사전 요구 사항

  • Java 8 이상이 설치되어 있어야 합니다.
  • groupdocs-watermark 의존성이 설정된 Maven 또는 Gradle 프로젝트.
  • 유효한 GroupDocs.Watermark 라이선스(평가용 임시 라이선스).
  • 보호하려는 PDF 파일(필요 시 비밀번호 포함).

PDF에 워터마크 추가 – 단계별 가이드

원본 문서를 로드하고, 워터마크를 적용한 뒤 결과를 저장합니다. 아래 섹션에서는 각 하위 작업을 직접 설명합니다.

디스크에서 문서를 로드하는 방법?

Watermarker는 워터마크 작업을 위해 문서를 로드하고 조작하는 주요 클래스입니다. Watermarker 생성자에 전체 파일 경로를 제공하면 SDK가 파일 형식을 자동으로 감지하고, 내용을 검증한 뒤 메모리로 로드하여 모든 워터마크 작업을 수행할 준비를 합니다. 이 방법은 PDF, Word 파일, 이미지 및 기타 지원 형식에 모두 적용됩니다.

Watermarker watermarker = new Watermarker("C:/files/input.pdf");

이 라인 이후 PDF가 메모리에 완전히 로드되어 모든 워터마크 작업을 수행할 준비가 됩니다.

스트림에서 문서를 로드하는 방법?

Watermarker는 InputStream을 받아 메모리에서 직접 문서를 로드할 수도 있습니다. HTTP나 메시지 큐를 통해 파일을 받을 때 바이트 배열을 ByteArrayInputStream으로 감싸고, InputStream을 받는 Watermarker 생성자에 전달하면 됩니다. SDK는 디스크에 쓰지 않고 스트림을 읽어 성능과 보안을 유지하며, 데이터를 청크 단위로 처리해 대용량 파일도 지원합니다. 이 방법은 웹 서비스 및 마이크로서비스 아키텍처에 이상적입니다.

InputStream pdfStream = new ByteArrayInputStream(pdfBytes);
Watermarker watermarker = new Watermarker(pdfStream);

SDK는 디스크에 쓰지 않고 스트림을 읽어 성능과 보안을 유지합니다.

비밀번호로 보호된 문서를 로드하는 방법?

Watermarker는 두 번째 인수로 비밀번호를 제공하여 비밀번호로 보호된 PDF를 로드할 수 있습니다. 생성자에 비밀번호를 두 번째 인수로 전달하면 SDK가 실시간으로 PDF를 복호화하고, 이후 일반 문서처럼 사용할 수 있습니다. 비밀번호가 올바르면 모든 페이지에 워터마크를 적용할 수 있으며, 그렇지 않을 경우 라이브러리가 명확한 예외를 발생시켜 이를 잡아 로그에 기록할 수 있습니다.

Watermarker watermarker = new Watermarker("C:/files/secure.pdf", "mySecretPwd");

비밀번호가 틀리면 SDK가 정보를 포함한 예외를 발생시키며, 이를 잡아 로그에 기록할 수 있습니다.

텍스트 워터마크 적용 방법?

TextWatermark는 스타일을 사용자 정의할 수 있는 텍스트 워터마크를 나타냅니다. 원하는 텍스트, 폰트, 크기 및 색상으로 TextWatermark 객체를 생성합니다. 그런 다음 Watermarker 인스턴스에서 add 메서드를 호출하고, 필요에 따라 페이지 범위를 지정합니다. 워터마크는 지정된 불투명도와 회전 각도로 렌더링되며, 미리 정의된 위치나 사용자 지정 좌표를 사용해 배치할 수 있어 모든 페이지에서 일관된 모습을 보장합니다.

TextWatermark watermark = new TextWatermark("Confidential", new Font("Arial", 36));
watermark.setColor(Color.RED);
watermark.setTransparency(0.5);
watermarker.add(watermark);

이 호출은 기본적으로 모든 페이지에 워터마크를 배치합니다; 필요하면 new PageRange(1, 5)와 같이 제한할 수 있습니다.

이미지 워터마크 적용 방법?

ImageWatermark는 로고나 인장과 같은 이미지 기반 워터마크를 나타냅니다. 로고의 경로나 스트림을 사용해 ImageWatermark를 인스턴스화한 뒤, 텍스트 워터마크와 동일하게 추가합니다. SDK는 이미지의 종횡비를 유지하면서 페이지에 맞게 자동으로 크기를 조정하며, 불투명도, 회전 및 배치를 조정해 원본 콘텐츠를 왜곡하지 않고 원하는 시각 효과를 얻을 수 있습니다.

ImageWatermark imgWatermark = new ImageWatermark("C:/images/logo.png");
imgWatermark.setTransparency(0.3);
watermarker.add(imgWatermark);

SDK는 이미지의 종횡비를 유지하면서 페이지에 맞게 크기를 조정합니다.

워터마크가 적용된 문서를 저장하는 방법?

save는 수정된 문서를 지정된 위치와 선택한 형식으로 저장합니다. 출력 경로와 원하는 형식을 지정해 save를 호출합니다. 형식 매개변수를 생략하면 원본과 동일한 형식이 사용됩니다. 이 메서드는 새로 추가된 워터마크 레이어를 제외한 모든 원본 콘텐츠를 유지하면서 수정된 PDF를 디스크에 기록하고, 추가 처리를 위해 스트림에 저장하는 것도 지원합니다.

watermarker.save("C:/files/output.pdf");

이 메서드는 새로 추가된 워터마크 레이어를 제외한 모든 원본 콘텐츠를 유지하면서 수정된 PDF를 디스크에 기록합니다.

사용 가능한 튜토리얼

Java에서 GroupDocs.Watermark를 사용해 비밀번호로 보호된 문서 로드하기

GroupDocs.Watermark for Java를 사용해 비밀번호로 보호된 문서에서 워터마크를 로드하고 관리하는 방법을 배웁니다. 이 가이드는 단계별 지침, 실용적인 예제 및 문제 해결 팁을 제공합니다.

Java에서 GroupDocs.Watermark를 사용해 비밀번호로 보호된 Word 문서 로드 및 워터마크 적용하기

GroupDocs.Watermark와 Java를 사용해 비밀번호로 보호된 Word 문서를 효율적으로 로드, 관리 및 워터마크를 적용하는 방법을 배웁니다.

추가 리소스

일반적인 문제 및 해결책

  • 잘못된 비밀번호 오류 – 비밀번호 문자열을 다시 확인하십시오; UTF‑8 인코딩이어야 합니다.
  • 대용량 PDF에서 메모리 부족 – InputStream 및 OutputStream을 받는 Watermarker 생성자를 사용해 스트리밍 모드를 활성화하십시오.
  • 워터마크가 보이지 않음 – 워터마크 불투명도가 0.1 이상인지, 색상이 페이지 배경과 대비되는지 확인하십시오.

자주 묻는 질문

Q: 동일한 PDF에 여러 워터마크를 추가할 수 있나요?
A: 예. 서로 다른 TextWatermark 또는 ImageWatermark 객체를 사용해 watermarker.add()를 반복 호출하면, 추가된 순서대로 레이어가 쌓입니다.

Q: 라이브러리가 기존 주석을 보존하나요?
A: 물론입니다. 주석, 양식 필드, 메타데이터 등 모든 원본 PDF 객체는 명시적으로 수정하지 않는 한 그대로 유지됩니다.

Q: 선택한 페이지에만 워터마크를 적용할 수 있나요?
A: 예. add 메서드에 PageRange(예: new PageRange(2, 4))를 전달하면 특정 페이지에만 워터마크가 적용됩니다.

Q: 지원되는 최대 파일 크기는 얼마인가요?
A: 스트리밍 아키텍처 덕분에 SDK는 전체 문서를 메모리에 로드하지 않고도 2 GB까지의 파일을 처리할 수 있습니다.

Q: 추가된 워터마크를 제거하려면 어떻게 해야 하나요?
A: 워터마크를 처음 추가할 때 반환된 식별자 watermarkId를 사용해 watermarker.remove(watermarkId)를 호출합니다.


마지막 업데이트: 2026-09-16
테스트 환경: GroupDocs.Watermark 23.9 for Java
작성자: GroupDocs

관련 튜토리얼