스프레드시트에 워터마크를 삽입하면 민감한 데이터를 보호하고 문서 소유권을 표시할 수 있습니다. Conholdate.Total for Java는 Java에서 몇 줄의 코드만으로 Excel에 워터마크를 삽입할 수 있는 간단한 API를 제공합니다. 이 가이드는 필요한 설정, 전체 구현 및 주요 구성 옵션을 단계별로 안내하여 Excel 워크북을 효율적으로 보호할 수 있도록 도와줍니다.

Java에서 Excel에 워터마크 삽입 방법 - 단계별

ExcelLoadOptions로 워크북 로드

  1. Excel 워크북 로드: WatermarkerExcelLoadOptions를 함께 사용하여 파일을 엽니다.
Watermarker watermarker = new Watermarker(inputPath, new ExcelLoadOptions());

Watermarker 클래스는 API reference에 문서화되어 있습니다. ExcelLoadOptions를 사용하여 로드하면 메모리 사용량을 제어할 수 있어 대용량 워크북에 필수적입니다.

텍스트 워터마크 만들기 및 스타일 지정

  1. 텍스트 워터마크 만들기: 글꼴, 색상, 불투명도, 회전 및 정렬을 정의합니다.
Font font = new Font("Arial", 36);
TextWatermark watermark = new TextWatermark("CONFIDENTIAL", font);
watermark.setColor(Color.RED);
watermark.setOpacity(0.3);
watermark.setRotationAngle(45);
watermark.setHorizontalAlignment(HorizontalAlignment.Center);
watermark.setVerticalAlignment(VerticalAlignment.Center);

opacity를 0.3으로 설정하면 워터마크가 반투명해지고, 45도 회전은 시트 대각선에 배치됩니다. 이러한 값을 조정하여 브랜드 가이드라인이나 규정 요구 사항을 충족할 수 있습니다.

모든 워크시트에 워터마크 적용

  1. 워크북에 워터마크 추가: add 메서드는 단일 호출로 모든 워크시트에 적용합니다.
watermarker.add(watermark);

워크시트별 제어가 필요한 경우 watermarker.getWorksheets()를 통해 개별 워크시트를 가져온 다음 각각에 add를 호출할 수 있습니다.

워터마크가 적용된 워크북 저장

  1. 워터마크가 적용된 워크북 저장: ExcelSaveOptions를 선택하여 출력 형식을 제어하고 원본 메타데이터를 보존합니다.
watermarker.save(outputPath, new ExcelSaveOptions());

ExcelSaveOptions 객체를 사용하면 원본 파일 버전을 유지할지 최신 XLSX 표준으로 업그레이드할지 지정할 수 있습니다.

메모리 누수를 방지하기 위해 리소스 해제

  1. Watermarker 닫기: 특히 배치에서 많은 파일을 처리할 때 메모리 누수를 방지하기 위해 리소스를 해제합니다.
watermarker.close();

Watermarker를 닫으면 보류 중인 쓰기 작업도 플러시되어 출력 파일이 손상되지 않도록 합니다.

이 단계에서는 Java에서 Excel에 워터마크를 삽입하는 방법을 보여주며, 외관 및 성능에 대한 제어를 제공합니다.

전체 코드 예제: Java에서 Excel에 워터마크 삽입 - 전체 Java 워터마크

다음 코드는 워크북을 로드하는 단계부터 결과를 저장하는 단계까지 전체 과정을 보여줍니다.

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.contents.TextWatermark;
import com.groupdocs.watermark.common.Font;
import com.groupdocs.watermark.common.Color;
import com.groupdocs.watermark.contents.HorizontalAlignment;
import com.groupdocs.watermark.contents.VerticalAlignment;
import com.groupdocs.watermark.options.load.ExcelLoadOptions;
import com.groupdocs.watermark.options.save.ExcelSaveOptions;

public class ExcelWatermarkExample {
    public static void main(String[] args) {
        String inputPath = "input.xlsx";
        String outputPath = "output_watermarked.xlsx";

Watermarker watermarker = null;
        try {
            // Load the Excel workbook (works for both XLS and XLSX)
            ExcelLoadOptions loadOptions = new ExcelLoadOptions();
            // For very large workbooks you can enable streaming mode:
            // loadOptions.setLoadAllWorksheets(false);
            watermarker = new Watermarker(inputPath, loadOptions);

// Create a text watermark with desired appearance
            Font font = new Font("Arial", 36);
            TextWatermark watermark = new TextWatermark("CONFIDENTIAL", font);
            watermark.setColor(Color.RED);
            watermark.setOpacity(0.3);               // 30% opacity
            watermark.setRotationAngle(45);          // diagonal
            watermark.setHorizontalAlignment(HorizontalAlignment.Center);
            watermark.setVerticalAlignment(VerticalAlignment.Center);

// Apply the watermark to all worksheets
            watermarker.add(watermark);

// Save the watermarked workbook
            ExcelSaveOptions saveOptions = new ExcelSaveOptions();
            watermarker.save(outputPath, saveOptions);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (watermarker != null) {
                watermarker.close();
            }
        }
    }
}

참고: 이 코드 예제는 핵심 기능을 보여줍니다. 프로젝트에서 사용하기 전에 파일 경로(input.xlsx, output_watermarked.xlsx)를 실제 파일 위치에 맞게 업데이트하고, 모든 필수 종속성이 올바르게 설치되었는지 확인한 다음 개발 환경에서 충분히 테스트하십시오. 문제가 발생하면 공식 문서를 참조하거나 지원 팀에 문의하십시오.

환경 준비

Maven 저장소 및 종속성 추가

Conholdate Maven 저장소와 SDK 종속성을 pom.xml에 추가합니다:

<repositories>
    <repository>
        <id>conholdate-repo</id>
        <name>Conholdate Maven Repository</name>
        <url>https://repository.conholdate.com/repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.conholdate</groupId>
    <artifactId>conholdate-total</artifactId>
    <version>24.9</version>
    <type>pom</type>
</dependency>

최신 JAR 파일은 다운로드 페이지에서 직접 다운로드할 수 있습니다. SDK는 Java 8 이상이 필요하며, IntelliJ IDEA 또는 Eclipse와 같은 호환 IDE를 사용하면 디버깅이 더 쉬워집니다.

라이선스 구성 (프로덕션 사용)

프로덕션 환경에서 워터마크 코드를 실행하기 전에 라이선스 파일을 적용하세요:

import com.groupdocs.watermark.License;

License license = new License();
license.setLicense("path/to/Conholdate.Total.Java.lic");

임시 라이선스는 평가용으로 임시 라이선스 페이지에서 제공됩니다. 장기 프로젝트의 경우, 적절한 플랜을 선택하려면 가격 페이지를 검토하십시오.

Conholdate.Total for Java가 Excel 워터마킹에 적합한 이유

포괄적인 XLS/XLSX 지원

라이브러리는 레거시 XLS와 최신 XLSX 형식을 모두 변환 없이 처리하며, 수식, 차트 및 매크로를 보존합니다.

대규모 워크북을 위한 효율적인 스트리밍 모드

수천 개의 행을 포함하는 워크북을 작업할 때, loadOptions.setLoadAllWorksheets(false)를 설정하여 스트리밍을 활성화하십시오. 이렇게 하면 메모리 사용량이 크게 감소합니다.

풍부한 워터마크 스타일 옵션

글꼴 패밀리, 크기, 색상, 불투명도, 회전 각도 및 정렬을 제어할 수 있습니다. 아래 표는 가장 일반적으로 조정되는 속성을 요약합니다.

속성예시 값영향
Fontnew Font("Arial", 36)워터마크 텍스트의 시각적 스타일을 결정합니다.
ColorColor.RED워터마크 색상을 설정합니다; 모든 RGB 값을 허용합니다.
Opacity0.3 (30%)투명도를 제어합니다; 값이 낮을수록 워터마크가 덜 눈에 띕니다.
Rotation Angle45 degrees워터마크를 대각선으로 배치하여 더 넓은 영역을 커버합니다.
Horizontal AlignmentHorizontalAlignment.Center워터마크를 수평으로 배치합니다.
Vertical AlignmentVerticalAlignment.Center워터마크를 수직으로 배치합니다.

자동 워크시트 적용

watermarker.add(watermark)에 대한 단일 호출만으로 워터마크가 모든 시트에 전파되어 반복적인 루프 작성을 피할 수 있습니다.

간단한 저장 옵션

ExcelSaveOptions를 사용하면 원본 파일 형식을 유지하거나 최신 XLSX 버전으로 업그레이드할 수 있으며, 매크로를 보존할지 여부도 지정할 수 있습니다.

이러한 모든 기능은 공식 문서에 자세히 설명되어 있습니다.

결론

이 튜토리얼에서는 강력한 기능을 제공하는 Conholdate.Total for Java를 사용하여 Java에서 Excel에 워터마크를 삽입하는 방법을 배웠습니다. 단계별 가이드를 따라 하면 사용자 정의 텍스트로 스프레드시트를 보호하고, 모양을 제어하며, 대용량 파일을 효율적으로 처리할 수 있습니다. 실제 배포를 위해서는 라이선스 버전이 필요합니다; 가격 페이지에서 가격을 확인하고, SDK를 평가하기 위해 임시 라이선스 페이지에서 임시 라이선스를 얻으세요.

FAQ

  • 텍스트 대신 이미지 워터마크를 추가하려면 어떻게 해야 하나요?
    텍스트 예제와 마찬가지로 ImageWatermark 클래스를 사용하고, 불투명도와 정렬을 설정한 다음 Watermarker 인스턴스에 추가합니다. 이미지는 PNG, JPEG, 또는 BMP 형식일 수 있으며, 워크시트에 맞게 크기를 조정할 수도 있습니다. 자세한 내용은 API reference를 참조하십시오.

  • 워크북을 PDF로 변환한 후에도 워터마크가 보이나요?
    예. 워터마크는 워크북에 삽입되어 있으며, 이후 PDF와 같이 변환할 때도 Conholdate.Total for Java를 사용하면 모든 시각적 요소가 유지됩니다. 변환 과정에서 워터마크를 포함한 모든 시각 요소가 보존됩니다.

  • 시트별로 워터마크를 제어할 수 있나요?
    SDK는 기본적으로 모든 워크시트에 워터마크를 적용하지만, watermarker.getWorksheets().get_Item(index)를 사용하여 개별 워크시트를 로드하고 각 워크시트에 선택적으로 add를 호출할 수 있습니다. 이렇게 하면 시트마다 다른 브랜딩이 필요한 보고서에 대해 세밀한 제어가 가능합니다.

  • 개발 및 테스트에 라이선스가 필요합니까?
    평가용 임시 라이선스는 임시 라이선스 페이지에서 사용할 수 있습니다. 상업적 사용을 위해서는 가격 페이지를 통해 전체 라이선스를 구매하십시오. 라이선스 파일은 Setup 섹션에 표시된 대로 런타임에 로드되어야 합니다.

더 읽기