IRONSOFTWAREHOME

Java에서 PDF에 사용자 지정 워터마크 적용하는 방법

Curtis Chau
Curtis Chau
Updated: 2026년 6월 16일

IronPDF는 Java 개발자가 HTML 문자열과 완전한 CSS 지원을 사용하여 PDF 문서에 사용자 지정 워터마크를 적용할 수 있게 해주며, 이를 통해 브랜드화 또는 보안 목적으로 텍스트, 이미지, 불투명도, 회전 및 위치를 완전히 제어할 수 있습니다.

빠른 시작: Java를 사용하여 PDF에 워터마크 적용
  1. IronPDF를 Maven 또는 Gradle 프로젝트에 추가하고 라이선스 키를 설정하세요
  2. PdfDocument.fromFile()를 사용하여 PDF 문서를 로드하십시오
  3. 워터마크용 HTML 문자열을 만드세요 (텍스트, 이미지 또는 둘 다)
  4. pdf.applyWatermark(watermarkHtml)을 사용하여 워터마크를 적용하십시오
  5. pdf.saveAs()로 워터마크가 적용된 PDF를 저장하십시오
  1. 1Install IronPDF with Maven Central Repository

    mvn install

  2. 2다음 코드 조각을 복사하여 실행하세요.

    //:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/quickstart.java
    PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));
    pdf.applyWatermark("<h1 style='color:red;'>Confidential</h1>");
    pdf.saveAs("watermarked.pdf");
    Java
  3. 3실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronPDF 사용 시작하기
    arrow pointer

워터마크는 PDF 문서를 보호하고 소유권이나 문서 상태를 나타냅니다. 일반적인 사용 사례로는 초안을 '비밀'로 표시하거나 모든 페이지에 회사 로고를 삽입하거나, 문서가 승인 대기 중임을 나타내는 것입니다. IronPDF는 HTML 및 CSS 접근 방식을 사용하므로 브라우저에서 표현할 수 있는 모든 스타일링(사용자 지정 글꼴, 불투명도, 회전, 절대 위치 지정)은 워터마크에서도 동일하게 작동합니다.

이 가이드는 text 워터마크, image 워터마크, 불투명도 및 위치 제어, 및 TextStamperImageStamper와 함께 고급 스탬핑을 다룹니다. 관련된 PDF 조작 기술에 대해서는 Java에서 HTML로 PDF 만들기 튜토리얼 또는 배경 및 전경 추가하기의 개요를 참조하세요.

PDF 파일에 텍스트 워터마크를 적용하는 방법은 무엇인가요?

텍스트를 PDF 문서의 모든 페이지에 스탬핑하기 위해 applyWatermark 메서드를 사용하십시오. 이 메서드는 HTML 문자열을 수락하므로, 워터마크를 원하는 CSS 속성으로 스타일링할 수 있습니다: 글꼴 유형, 크기, 색상, 문자 간격 또는 텍스트 그림자. 아래 예시는 문서를 빨간색 '비밀'로 표시하여 가장 일반적인 감사 추적 및 접근 제어 시나리오를 다룹니다.

//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-watermark.java
import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF document from file
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));

        // HTML string defines the watermark appearance via CSS
        String watermarkHtml = "<h1 style='color:red;'>Confidential</h1>";

        // Apply the watermark to every page
        pdf.applyWatermark(watermarkHtml);

        // Save the watermarked PDF to a new file
        pdf.saveAs("text_watermark.pdf");
    }
}
Java

applyWatermark 호출은 모든 페이지에 워터마크를 단일 작업으로 추가합니다. 기본적으로 워터마크는 불투명도 50%로 렌더링되며 각 페이지의 중앙에 위치합니다. 라이브러리의 모든 기능을 활성화하려면 IronPDF 라이선스 키를 모든 PDF 작업 전에 구성하세요. applyWatermark에 전달된 HTML은 유효한 모든 HTML 요소를 수락하므로, <div>, <span>, 또는 스타일이 지정된 <p> 태그를 다중 라인 워터마크로 포함할 수 있습니다.

텍스트 워터마크는 어떻게 생겼나요?

출력 파일 text_watermark.pdf은 각 페이지에 수평 및 수직으로 중앙에 놓인 빨간 색의 기밀이라는 단어를 보여줍니다. 기본 불투명도 50%는 워터마크 아래에서 문서 내용을 읽을 수 있게 유지합니다. 여러 페이지로 구성된 문서의 경우, 각 페이지는 별도의 페이지 루프 없이 동일한 스탬프를 받습니다.

팁: 대각선 다중 라인 스탬프와 같은 복잡한 텍스트 서식을 위해, 단일 HTML 문자열 내에서 여러 CSS 변환을 결합할 수 있습니다: transform: rotate(-45deg) scale(1.5).

워터마크에 적용 가능한 HTML 렌더링 기술을 더 깊이 있게 알아보려면 HTML에서 PDF로 변환하는 튜토리얼을 참조하세요.


PDF에 이미지 워터마크를 어떻게 추가할 수 있나요?

이미지 워터마크는 <img> 태그를 HTML 문자열에 래핑하여 동일한 applyWatermark 메서드를 통해 작동합니다. 투명한 배경의 PNG 파일은 로고 워터마크에 적합합니다. 이미지가 PDF 페이지에 합성될 때 투명성이 유지되기 때문입니다. JPEG, GIF, SVG 및 BMP 형식도 지원됩니다.

//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark.java
import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF document from file
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));

        // Reference the image file path relative to the runtime working directory
        String watermarkHtml = "<img src='logo.png' style='width:100px;'/>";

        // Apply the image watermark to all pages
        pdf.applyWatermark(watermarkHtml);

        // Save the result
        pdf.saveAs("image_watermark.pdf");
    }
}
Java

<img> 태그의 CSS 속성은 크기, 위치, 투명성을 제어합니다:

//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/image-watermark-advanced.java
// Apply a 150px logo at 50% opacity, rotated 45 degrees counterclockwise
String advancedWatermarkHtml =
    "<img src='logo.png' style='width:150px; opacity:0.5; transform:rotate(-45deg);'/>";
Java

src 속성에 Base64 데이터 URI로 이미지를 삽입하거나 절대 경로를 사용하여 런타임에 JVM의 작업 디렉토리에서 이미지 경로에 접근 가능해야 합니다.

이미지 워터마크에 지원되는 파일 형식은 무엇인가요?

IronPDF는 워터마크에서 PNG, JPEG, GIF, SVG, BMP 이미지 형식을 지원합니다. 투명한 배경의 PNG는 로고 워터마크에 가장 깔끔한 결과를 제공합니다. 출력 파일 image_watermark.pdf은 100픽셀 너비의 이미지를 각 페이지의 중심에 50% 기본 불투명도로 보여줍니다. 다른 워터마크에서 사용하기 위해 기존 PDF에서 이미지를 추출하려면 PDF에서 이미지 추출 가이드를 참조하세요.


워터마크의 불투명도와 정렬을 어떻게 제어할 수 있나요?

applyWatermark 메서드는 HTML 문자열 뒤에 불투명도 및 정렬 매개변수를 수락합니다. 불투명도는 0(완전 투명)에서 100(완전 불투명) 사이의 정수입니다. 20에서 40 사이의 값은 대부분의 문서에 잘 맞으며, 워터마크가 본문 텍스트를 가리지 않으면서도 가시성을 유지합니다. VerticalAlignmentHorizontalAlignment 열거형은 페이지의 모서리 또는 가장자리를 목표로 하는 워터마크를 제어합니다.

//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/watermark-opacity-alignment.java
import java.io.IOException;
import java.nio.file.Paths;

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load an existing PDF document from file
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));

        // Define the watermark HTML
        String watermarkHtml = "<h1 style='color:blue;'>Confidential</h1>";

        // Apply at 30% opacity, anchored to the top-left corner of each page
        pdf.applyWatermark(watermarkHtml, 30, VerticalAlignment.TOP, HorizontalAlignment.LEFT);

        // Save the result
        pdf.saveAs("watermark_opacity_alignment.pdf");
    }
}
Java

세 가지 선택적 매개변수를 결합하면 수직 및 수평 정렬의 교차점마다 하나씩 총 9가지 위치 옵션이 있습니다. 같은 페이지에 여러 위치에 워터마크를 나타내거나 특정 페이지 범위에만 워터마크를 적용해야 하는 경우, 스탬퍼 클래스가 더 세밀한 제어를 제공합니다. 배경 및 전경 가이드를 참조하여 레이어드 조합 기술을 확인하세요.

어떤 정렬 옵션이 있나요?

applyWatermark 메서드는 다음 정렬 상수를 지원합니다:

수직 정렬 (VerticalAlignment):

  • TOP - 워터마크가 상단 가장자리에 고정
  • MIDDLE - 워터마크가 수직으로 중앙
  • BOTTOM - 워터마크가 하단 가장자리에 고정

수평 정렬 (HorizontalAlignment):

  • LEFT - 워터마크가 왼쪽 가장자리에 고정
  • CENTER - 워터마크가 수평으로 중앙
  • RIGHT - 워터마크가 오른쪽 가장자리에 고정

applyWatermark(html)의 기본 호출은 추가 매개변수가 없는 경우 불투명도를 50으로 설정하고, VerticalAlignment.MIDDLE 및 HorizontalAlignment.CENTER를 전달하는 것과 같습니다.

정확한 제어를 위해 어떤 수직 값이든 어떤 수평 값과 쌍으로 매칭하세요. 로고가 오른쪽 상단 모서리에 있고, 초안 통지가 대각선으로 중앙에 있는 것과 같이 여러 중첩된 스탬프가 필요한 문서의 경우, 각 스탬프를 별도의 applyWatermark 호출로 적용하십시오. 주석 기반 오버레이의 경우, 주석 예제를 참조하세요.


TextStamper 및 ImageStamper로 고급 워터마크를 어떻게 적용합니까?

applyWatermark 메서드는 대부분의 워터마크 필요를 처리하지만, 정확한 픽셀 좌표, 페이지 범위 타겟팅, 또는 동적 텍스트 생성이 필요한 경우, TextStamperImageStamper 클래스는 프로그래밍 제어를 제공합니다. 두 클래스는 모두 com.ironsoftware.ironpdf.stamp 패키지에 속합니다.

TextStamper은 문자열 값을 수락하며 글꼴, 글꼴 크기, 글꼴 색상, 수평 및 수직 정렬, 불투명도에 대한 속성을 노출합니다. 또한 정수(도)로 회전도 지원합니다. ImageStamper은 이미지에 대한 파일 경로 또는 바이트 배열을 수락하며 TextStamper와 동일한 정렬 및 불투명도 제어를 노출합니다.

applyWatermark보다 스탬퍼 클래스의 주된 이점은 특정 페이지를 목표로 할 수 있는 능력입니다. 워터마크를 적용할 페이지에만 도표형 범위로 0 기반 페이지 번호 목록을 stamp 메서드에 전달하여 예를 들어, 보고서의 표지 페이지 또는 계약서의 최종 승인 페이지에만 스탬핑할 수 있습니다.

//:path=/static-assets/pdf/content-code-examples/how-to/custom-watermark/text-stamper.java
import java.io.IOException;
import java.nio.file.Paths;
import java.util.Arrays;

import com.ironsoftware.ironpdf.License;
import com.ironsoftware.ironpdf.PdfDocument;
import com.ironsoftware.ironpdf.stamp.HorizontalAlignment;
import com.ironsoftware.ironpdf.stamp.TextStamper;
import com.ironsoftware.ironpdf.stamp.VerticalAlignment;

public class Main {
    public static void main(String[] args) throws IOException {
        // Set the license key for IronPDF
        License.setLicenseKey("IRONPDF-MYLICENSE-KEY-1EF01");

        // Load the target PDF document
        PdfDocument pdf = PdfDocument.fromFile(Paths.get("sample.pdf"));

        // Configure a TextStamper with custom font, rotation, and opacity
        TextStamper stamper = new TextStamper();
        stamper.setText("DRAFT");
        stamper.setFontSize(72);
        stamper.setFontColor("gray");
        stamper.setOpacity(40);
        stamper.setRotation(45);
        stamper.setVerticalAlignment(VerticalAlignment.MIDDLE);
        stamper.setHorizontalAlignment(HorizontalAlignment.CENTER);

        // Apply the stamp only to pages 0 and 1 (zero-indexed)
        pdf.stamp(stamper, Arrays.asList(0, 1));

        // Save the stamped PDF
        pdf.saveAs("text_stamped.pdf");
    }
}
Java

stamp 메서드는 워터마크를 받을 페이지에 정확하게 제어할 수 있는 0 기반 페이지 번호 List<Integer>를 수락합니다. 페이지 목록이 제공되지 않은 경우, 스탬프는 모든 페이지에 적용됩니다. 응용 프로그램이 동적으로 워터마크를 생성하는 경우, 예를 들어 각 생성된 PDF에 고유한 트랜잭션 ID, 사용자 이름, 또는 타임스탬프를 삽입하는 경우, TextStamper가 올바른 선택입니다.

중요한: TextStamperImageStamper 클래스는 공통 Stamper 기반 클래스를 공유합니다. 애플리케이션이 동적으로 워터마크를 생성해야 할 때마다, 예를 들어 각 생성된 PDF에 고유한 거래 ID나 사용자 이름을 삽입하는 경우에 스탬퍼 접근 방식을 사용하세요.

수백 개의 PDF에 고유한 고객별 워터마크를 스탬핑하는 대량 처리의 경우, 각 PdfDocument를 루프 내에서 로드 및 스탬핑하고, 다음 반복 전에 saveAs을 호출하십시오. IronPDF는 각 문서를 독립적으로 처리하므로 메모리 사용이 일정하게 유지됩니다. Java PDF 스탬프 가이드ImageStamper 및 추가 스탬핑 옵션을 자세히 설명하고, IronPDF Java 문서는 전체 API 참조를 제공합니다.

TextStamper는 applyWatermark와 어떻게 다릅니까?

applyWatermark 메서드는 HTML 문자열에서 빠르고 일관된 다페이지 스탬프를 위한 최적화가 되어 있습니다. TextStamperImageStamperapplyWatermark의 부족한 시나리오를 다룹니다: 페이지의 하위 집합을 타겟팅하거나, 서로 다른 구성을 가진 여러 개의 스탬프를 적용하거나, 데이터베이스 또는 사용자 입력에서 프로그래밍 방식으로 워터마크 매개변수를 빌드해야 하는 경우. 두 방법 모두 PDF 콘텐츠 스트림에 직접 내장된 벡터 품질 출력을 생성하므로, 워터마크는 다른 콘텐츠 레이어를 무시하는 다시 저장, 인쇄 및 PDF 리더를 통해도 살아남습니다.

Apache PDFBox 라이브러리로 워터마킹 작업을 하는 개발자들은 IronPDF의 접근 방식을 훨씬 간단하다고 느낄 것입니다. PDFBox는 콘텐츠 스트림을 수동으로 구성하고 자원을 관리해야 하는 반면, applyWatermark는 평범한 HTML 문자열을 수락합니다. Baeldung의 iText 워터마킹 가이드는 iText를 사용하여 PdfStampAnnotation 객체를 생성하고 PdfCanvas 파이프라인을 통해 추가하는 유사 작업을 설명합니다. IronPDF는 이를 단일 메서드 호출로 줄여줍니다.

팁: 워터마크 출력을 프로그래밍 방식으로 확인하려면, PdfDocument.extractAllText()와 함께 텍스트 콘텐츠를 추출하고 예상되는 워터마크 문자열을 확인하거나 Java PDF 조작에 대한 Stack Overflow 커뮤니티 토론에서 일반적인 문제 해결 패턴을 사용하십시오.

Java에서 PDF 워터마킹을 위한 다음 단계는 무엇입니까?

이 가이드는 IronPDF for Java로 PDF에 워터마킹하는 네 가지 접근법: applyWatermark을 통해 간단한 텍스트 워터마킹, HTML <img> 태그를 사용하는 이미지 워터마킹, 메서드 매개변수를 통한 불투명도 및 정렬 제어, 및 고급 사용 사례를 위한 TextStamperImageStamper로의 프로그래밍 스탬핑을 다루었습니다.

무료 체험을 시작하세요 당신의 Java 애플리케이션에서 워터마킹을 테스트하기 위해. 체험에는 평가에 시간 제한이 없는 모든 스탬프 및 워터마킹 기능에 대한 전체 액세스가 포함됩니다. 배포할 준비가 되면, 라이선스 옵션을 확인하여 귀하의 사용에 맞는 등급을 찾으십시오.

당신이 할 수 있는 다른 일들을 알아볼 준비가 되셨나요? 전체 튜토리얼 페이지를 여기서 확인하세요: IronPDF for Java 사용 가이드

자주 묻는 질문

Java를 사용하여 PDF에 텍스트 워터마크를 추가하는 방법은 무엇인가요?

PDF를 PdfDocument.fromFile()로 로드한 다음 HTML 문자열로 pdf.applyWatermark()를 호출합니다. IronPDF는 모든 유효한 HTML 및 CSS를 렌더링하므로, 요소에 색상, 글꼴 크기 및 불투명도를 직접 설정할 수 있습니다.

Java에서 이미지를 워터마크로 사용할 수 있습니까?

네. HTML 문자열 내에 <img> 태그를 applyWatermark()에 전달하세요. 투명한 배경이 있는 PNG 파일이 가장 명확한 결과를 제공합니다. 또한 페이지 범위 타겟팅을 위해 ImageStamper 클래스를 사용할 수도 있습니다.

워터마크 불투명도를 어떻게 제어하나요?

applyWatermark()의 두 번째 인수로 0 (완전히 투명)에서 100 (완전히 불투명)까지의 정수를 전달합니다. 20에서 40 사이의 값이 본문 텍스트를 가리지 않고 대부분의 문서에 잘 작동합니다.

워터마크를 대각선으로 회전할 수 있습니까?

네. HTML 요소에 CSS transform: rotate(-45deg) 스타일을 추가한 후 이를 applyWatermark()에 전달하세요. IronPDF는 렌더링 중에 모든 표준 CSS3 변형을 적용합니다.

applyWatermark와 TextStamper의 차이점은 무엇인가요?

applyWatermark()는 동일한 HTML 기반 스탬프를 모든 페이지에 적용하는 가장 빠른 방법입니다. TextStamper는 글꼴, 회전 및 특정 페이지만 타겟팅하는 페이지 목록에 대한 프로그래매틱 제어를 제공합니다.

워터마크를 특정 위치에 배치하려면 어떻게 하나요?

applyWatermark()의 세 번째와 네 번째 인수로 VerticalAlignmentHorizontalAlignment 열거형 값을 전달하세요. 가능한 위치는 TOP, MIDDLE, BOTTOM과 LEFT, CENTER, RIGHT 조합이 포함됩니다.

다른 페이지에 다른 워터마크를 적용할 수 있습니까?

네. TextStamper 또는 ImageStamper를 사용하고 특정 워터마크가 필요한 페이지에만 타겟팅하려면 stamp() 메소드에 0으로 인덱싱된 페이지 번호 목록을 전달하세요.

같은 PDF에 텍스트와 이미지 워터마크를 결합할 수 있습니까?

네. 여러 번 applyWatermark()를 호출하거나 저장하기 전에 여러 번 stamp()를 호출하세요. 각 호출은 PDF 콘텐츠 스트림에 독립적으로 새 레이어를 추가합니다.

Is it possible to apply multiple watermarks on the same page using IronPDF?

Yes, IronPDF allows the application of multiple watermarks on the same page by using separate `applyWatermark` calls or utilizing the `TextStamper` and `ImageStamper`. This provides flexibility for adding distinct stamps or logos at different positions within a single document.

What are the steps for applying a watermark in bulk to multiple PDFs with IronPDF?

To apply watermarks in bulk, iterate over your list of PDF documents, applying the watermark using the desired method (e.g., `applyWatermark`, `TextStamper`) on each, and save the changes with `saveAs`. This process ensures efficient memory usage as IronPDF handles each document independently.

Curtis Chau
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

...
더 읽어보기

시작할 준비 되셨나요?

버전:2026.6방금 출시

지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.
PDF용 Java Maven 라이브러리
Maven을 사용하여 설치하세요

버전: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
자바 PDF JAR
JAR 파일 다운로드

버전: 2026.6

프로젝트에 수동으로 설치하세요

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.