JavaScript에서 프레젠테이션에 워터마크 추가

소개

워터마크는 프레젠테이션에서 슬라이드에 또는 모든 슬라이드에 사용되는 텍스트 또는 이미지 스탬프입니다. 일반적으로 워터마크는 프레젠테이션이 초안임을 표시하거나(예: “Draft” 워터마크), 기밀 정보를 포함함을 나타내거나(예: “Confidential” 워터마크), 소속 회사를 지정하거나(예: “Company Name” 워터마크), 발표자를 식별하는 데 사용됩니다. 워터마크는 프레젠테이션을 복사해서는 안 된다는 표시를 함으로써 저작권 침해를 방지하는 데 도움이 됩니다. 워터마크는 PowerPoint와 OpenOffice 프레젠테이션 형식 모두에서 사용할 수 있습니다. Aspose.Slides에서는 PowerPoint PPT, PPTX 및 OpenOffice ODP 파일 형식에 워터마크를 추가할 수 있습니다.

Aspose.Slides에서는 PowerPoint 또는 OpenOffice 문서에 워터마크를 만들고 디자인 및 동작을 수정할 수 있는 다양한 방법이 제공됩니다. 공통점은 텍스트 워터마크를 추가할 때는 TextFrame 타입을 사용하고, 이미지 워터마크를 추가할 때는 PictureFrame 클래스를 사용하거나 워터마크 형태를 이미지로 채우는 것입니다. PictureFrameShape 타입을 구현하므로 형태 객체의 모든 유연한 설정을 사용할 수 있습니다. TextFrame은 형태가 아니며 설정이 제한적이기 때문에 Shape 객체에 래핑됩니다.

워터마크를 적용하는 방법은 두 가지가 있습니다: 단일 슬라이드에 적용하거나 전체 프레젠테이션 슬라이드에 적용하는 것입니다. 전체 슬라이드에 워터마크를 적용하려면 Slide Master를 사용합니다 — 워터마크를 Slide Master에 추가하고 완전히 디자인한 후 모든 슬라이드에 적용되며 개별 슬라이드에서 워터마크를 수정할 권한에는 영향을 주지 않습니다.

워터마크는 일반적으로 다른 사용자가 편집할 수 없도록 간주됩니다. 워터마크(또는 워터마크의 상위 형태)의 편집을 방지하려면 Aspose.Slides에서 형태 잠금 기능을 제공합니다. 특정 형태는 일반 슬라이드 또는 Slide Master에서 잠글 수 있습니다. Slide Master에서 워터마크 형태를 잠그면 모든 프레젠테이션 슬라이드에서 잠긴 상태가 됩니다.

워터마크에 이름을 지정하면 향후 삭제하고자 할 때 슬라이드의 형태 목록에서 이름으로 찾아낼 수 있습니다.

워터마크는 어떤 방식으로든 디자인할 수 있지만 일반적으로 가운데 정렬, 회전, 앞쪽 배치 등의 공통 특징이 있습니다. 아래 예제에서 이러한 기능을 어떻게 사용할지 살펴보겠습니다.

텍스트 워터마크

슬라이드에 텍스트 워터마크 추가

PPT, PPTX 또는 ODP에 텍스트 워터마크를 추가하려면 먼저 슬라이드에 형태를 추가한 다음 해당 형태에 텍스트 프레임을 추가합니다. 텍스트 프레임은 TextFrame 타입으로 표현됩니다. 이 타입은 Shape에서 상속되지 않으며, 워터마크를 유연하게 배치할 수 있는 다양한 속성을 제공하지 않습니다. 따라서 TextFrame 객체는 AutoShape 객체에 래핑됩니다. 형태에 워터마크 텍스트를 추가하려면 워터마크 텍스트를 인수로 전달하여 addTextFrame 메서드를 사용합니다:

const watermarkText = "CONFIDENTIAL";

let presentation = new aspose.slides.Presentation();
let slide = presentation.getSlides().get_Item(0);

let watermarkShape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 400, 40);
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);

presentation.dispose();

프레젠테이션에 텍스트 워터마크 추가

전체 프레젠테이션(즉, 모든 슬라이드) 에 텍스트 워터마크를 추가하려면 MasterSlide에 추가합니다. 나머지 로직은 단일 슬라이드에 워터마크를 추가할 때와 동일합니다 — AutoShape 객체를 만든 다음 addTextFrame 메서드로 워터마크를 추가합니다:

const watermarkText = "CONFIDENTIAL";

let presentation = new aspose.slides.Presentation();
let masterSlide = presentation.getMasters().get_Item(0);

let watermarkShape = masterSlide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 100, 100, 400, 40);
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);

presentation.dispose();

워터마크 형태 투명도 설정

기본적으로 사각형 형태는 채우기 및 선 색상이 적용됩니다. 다음 코드 줄은 형태를 투명하게 만듭니다.

watermarkShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));
watermarkShape.getLineFormat().getFillFormat().setFillType(java.newByte(aspose.slides.FillType.NoFill));

텍스트 워터마크의 글꼴 설정

아래와 같이 텍스트 워터마크의 글꼴을 변경할 수 있습니다.

let textFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat();
textFormat.setLatinFont(new aspose.slides.FontData("Arial"));
textFormat.setFontHeight(50);

워터마크 텍스트 색상 설정

워터마크 텍스트 색상을 지정하려면 다음 코드를 사용합니다:

let alpha = 150;
let red = 200;
let green = 200;
let blue = 200;

let fillFormat = watermarkFrame.getParagraphs().get_Item(0).getParagraphFormat().getDefaultPortionFormat().getFillFormat();
fillFormat.setFillType(java.newByte(aspose.slides.FillType.Solid));
fillFormat.getSolidFillColor().setColor(java.newInstanceSync("java.awt.Color", red, green, blue, alpha));

텍스트 워터마크 가운데 정렬

슬라이드에서 워터마크를 가운데 정렬하려면 다음과 같이 할 수 있습니다:

const watermarkWidth = 400;
const watermarkHeight = 40;
const watermarkX = (slideSize.getWidth() - watermarkWidth) / 2;
const watermarkY = (slideSize.getHeight() - watermarkHeight) / 2;

let watermarkShape = masterSlide.getShapes().addAutoShape(
        aspose.slides.ShapeType.Rectangle, watermarkX, watermarkY, watermarkWidth, watermarkHeight);
        
let watermarkFrame = watermarkShape.addTextFrame(watermarkText);

아래 이미지는 최종 결과를 보여줍니다.

텍스트 워터마크

이미지 워터마크

프레젠테이션에 이미지 워터마크 추가

전체 프레젠테이션 슬라이드에 이미지 워터마크를 추가하려면 다음과 같이 진행합니다:

let watermarkImage = aspose.slides.Images.fromFile("watermark.png");
let image = presentation.getImages().addImage(watermarkImage);

// ...

watermarkShape.getFillFormat().setFillType(java.newByte(aspose.slides.FillType.Picture));
watermarkShape.getFillFormat().getPictureFillFormat().getPicture().setImage(image);
watermarkShape.getFillFormat().getPictureFillFormat().setPictureFillMode(aspose.slides.PictureFillMode.Stretch);

워터마크 편집 잠금

워터마크를 편집할 수 없도록 하려면 형태에 대해 AutoShape.getShapeLock 메서드를 사용합니다. 이 속성을 사용하면 형태를 선택, 크기 조정, 위치 이동, 다른 요소와 그룹화, 텍스트 편집 잠금 등으로부터 보호할 수 있습니다:

// 워터마크 형태를 수정할 수 없도록 잠금
watermarkShape.getShapeLock().setSelectLocked(true);
watermarkShape.getShapeLock().setSizeLocked(true);
watermarkShape.getShapeLock().setTextLocked(true);
watermarkShape.getShapeLock().setPositionLocked(true);
watermarkShape.getShapeLock().setGroupingLocked(true);

워터마크를 앞쪽으로 이동

Aspose.Slides에서는 SlideCollection.reorder 메서드를 통해 형태의 Z‑order를 설정할 수 있습니다. 프레젠테이션 슬라이드 목록에서 이 메서드를 호출하고 형태 참조와 순서 번호를 전달하면 형태를 앞쪽이나 뒤쪽으로 이동시킬 수 있습니다. 이 기능은 워터마크를 프레젠테이션 앞쪽에 배치해야 할 때 특히 유용합니다:

let shapeCount = slide.getShapes().size();
slide.getShapes().reorder(shapeCount - 1, watermarkShape);

워터마크 회전 설정

다음 코드는 워터마크를 슬라이드 대각선 방향으로 회전하도록 조정하는 예제입니다:

const diagonalAngle = Math.atan(slideSize.getHeight() / slideSize.getWidth()) * 180 / Math.PI;

watermarkShape.setRotation(diagonalAngle);

워터마크 이름 설정

Aspose.Slides에서는 형태에 이름을 지정할 수 있습니다. 형태 이름을 사용하면 향후 해당 형태에 접근하여 수정하거나 삭제할 수 있습니다. 워터마크 형태의 이름을 설정하려면 AutoShape.getName 메서드에 이름을 할당합니다:

watermarkShape.setName("watermark");

워터마크 제거

워터마크 형태를 제거하려면 AutoShape.getName 메서드로 슬라이드 형태 목록에서 찾아낸 뒤, 해당 형태를 ShapeCollection.remove 메서드에 전달합니다:

for (var i = 0; i < slide.getShapes().size(); i++) {
    var shape = slide.getShapes().get_Item(i);
    if ("watermark" == shape.getName()) {
        slide.getShapes().remove(watermarkShape);
    }
}

자주 묻는 질문

워터마크란 무엇이며 왜 사용해야 하나요?

워터마크는 슬라이드에 적용되는 텍스트 또는 이미지 오버레이로, 지적 재산을 보호하고 브랜드 인지도를 높이며 프레젠테이션의 무단 사용을 방지하는 데 도움이 됩니다.

프레젠테이션의 모든 슬라이드에 워터마크를 추가할 수 있나요?

예, Aspose.Slides를 사용하면 프레젠테이션의 모든 슬라이드에 워터마크를 추가할 수 있습니다. 모든 슬라이드를 순회하면서 개별적으로 워터마크 설정을 적용하면 됩니다.

워터마크의 투명도를 어떻게 조정하나요?

형태의 fill settings을 수정하여 워터마크 투명도를 조절할 수 있습니다. 이를 통해 워터마크가 눈에 띄지 않으면서도 슬라이드 내용은 방해받지 않도록 할 수 있습니다.

워터마크에 사용할 수 있는 이미지 포맷은 무엇인가요?

Aspose.Slides는 PNG, JPEG, GIF, BMP, SVG 등 다양한 이미지 포맷을 지원합니다.

텍스트 워터마크의 글꼴과 스타일을 커스터마이즈할 수 있나요?

예, 프레젠테이션 디자인 및 브랜드 일관성을 유지하도록 원하는 글꼴, 크기 및 스타일을 선택할 수 있습니다.

워터마크의 위치나 방향을 어떻게 변경하나요?

형태의 좌표, 크기 및 회전 속성을 수정하여 워터마크의 위치와 방향을 조정할 수 있습니다.