Dodawanie znaków wodnych do prezentacji w Pythonie

Wstęp

Znak wodny w prezentacji to znak tekstowy lub graficzny używany na pojedynczym slajdzie lub na wszystkich slajdach prezentacji. Zazwyczaj znak wodny służy do wskazania, że prezentacja jest wersją roboczą (np. znak wodny „Draft”), że zawiera informacje poufne (np. znak wodny „Confidential”), aby określić, do której firmy należy (np. znak wodny „Company Name”), do identyfikacji autora prezentacji itp. Znak wodny pomaga zapobiegać naruszeniom praw autorskich, wskazując, że prezentację nie należy kopiować. Znaki wodne są używane zarówno w formatach prezentacji PowerPoint, jak i OpenOffice. W Aspose.Slides można dodać znak wodny do plików PowerPoint PPT, PPTX oraz OpenOffice ODP.

W Aspose.Slides, istnieje wiele sposobów tworzenia znaków wodnych w dokumentach PowerPoint lub OpenOffice oraz modyfikowania ich wyglądu i zachowania. Wspólnym elementem jest to, że aby dodać tekstowy znak wodny, należy użyć klasy TextFrame, a aby dodać graficzny znak wodny, użyć klasy PictureFrame lub wypełnić kształt znaku wodnego obrazem. PictureFrame implementuje klasę Shape, co pozwala korzystać ze wszystkich elastycznych ustawień obiektu kształtu. Ponieważ TextFrame nie jest kształtem i jego ustawienia są ograniczone, jest on opakowywany w obiekt Shape .

Istnieją dwa sposoby zastosowania znaku wodnego: na pojedynczym slajdzie lub na wszystkich slajdach prezentacji. Slide Master jest używany do zastosowania znaku wodnego na wszystkich slajdach — znak wodny jest dodawany do Slide Master, w pełni tam projektowany i stosowany do wszystkich slajdów bez wpływu na możliwość modyfikacji znaku wodnego na poszczególnych slajdach.

Znak wodny jest zazwyczaj uznawany za niedostępny do edycji przez innych użytkowników. Aby zapobiec edycji znaku wodnego (a dokładniej jego nadrzędnego kształtu), Aspose.Slides udostępnia funkcję blokowania kształtów. Konkretny kształt może być zablokowany na zwykłym slajdzie lub na Slide Master. Gdy kształt znaku wodnego jest zablokowany na Slide Master, zostaje on zablokowany na wszystkich slajdach prezentacji.

Możesz ustawić nazwę znaku wodnego, aby w przyszłości, gdy będziesz chciał go usunąć, móc odnaleźć go wśród kształtów slajdu po nazwie.

Możesz zaprojektować znak wodny w dowolny sposób; jednak zazwyczaj znaki wodne mają wspólne cechy, takie jak wyśrodkowanie, obrót, pozycja na wierzchu itp. Poniżej omówimy, jak je wykorzystać w przykładach.

Znak wodny tekstowy

Dodaj tekstowy znak wodny do slajdu

Aby dodać tekstowy znak wodny w PPT, PPTX lub ODP, najpierw możesz dodać kształt do slajdu, a następnie dodać do tego kształtu ramkę tekstową. Ramka tekstowa jest reprezentowana przez klasę TextFrame. Ten typ nie dziedziczy po Shape, który posiada szeroki zestaw właściwości do elastycznego pozycjonowania znaku wodnego. Dlatego obiekt TextFrame jest opakowywany w obiekt AutoShape. Aby dodać tekst znaku wodnego do kształtu, użyj metody add_text_frame jak pokazano poniżej.

watermark_text = "CONFIDENTIAL"

with Presentation() as presentation:
    slide = presentation.slides[0]

    watermark_shape = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 100, 100, 400, 40)
    watermark_frame = watermark_shape.add_text_frame(watermark_text)

Dodaj tekstowy znak wodny do prezentacji

Jeśli chcesz dodać tekstowy znak wodny do całej prezentacji (czyli do wszystkich slajdów jednocześnie), dodaj go do MasterSlide. Reszta logiki jest taka sama, jak przy dodawaniu znaku wodnego do pojedynczego slajdu — utwórz obiekt AutoShape i następnie dodaj znak wodny przy użyciu metody add_text_frame.

watermark_text = "CONFIDENTIAL"

with Presentation() as presentation:
    master_slide = presentation.masters[0]

    watermark_shape = master_slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 100, 100, 400, 40)
    watermark_frame = watermark_shape.add_text_frame(watermark_text)

Ustaw przezroczystość kształtu znaku wodnego

Domyślnie prostokątny kształt ma ustawione kolory wypełnienia i linii. Poniższe wiersze kodu sprawiają, że kształt staje się przezroczysty.

watermark_shape.fill_format.fill_type = FillType.NO_FILL
watermark_shape.line_format.fill_format.fill_type = FillType.NO_FILL

Ustaw czcionkę tekstowego znaku wodnego

Możesz zmienić czcionkę tekstowego znaku wodnego, jak pokazano poniżej.

text_format = watermark_frame.paragraphs[0].paragraph_format.default_portion_format
text_format.latin_font = FontData("Arial")
text_format.font_height = 50

Ustaw kolor tekstu znaku wodnego

Aby ustawić kolor tekstu znaku wodnego, użyj poniższego kodu:

alpha = 150
red = 200
green = 200
blue = 200

fill_format = watermark_frame.paragraphs[0].paragraph_format.default_portion_format.fill_format
fill_format.fill_type = FillType.SOLID
fill_format.solid_fill_color.color = drawing.Color.from_argb(alpha, red, green, blue)

Wyśrodkuj tekstowy znak wodny

Możliwe jest wyśrodkowanie znaku wodnego na slajdzie; w tym celu możesz wykonać następujące czynności:

slide_size = presentation.slide_size.size

watermark_width = 400
watermark_height = 40
watermark_x = (slide_size.width - watermark_width) / 2
watermark_y = (slide_size.height - watermark_height) / 2

watermark_shape = slide.shapes.add_auto_shape(
    ShapeType.RECTANGLE, watermark_x, watermark_y, watermark_width, watermark_height)

watermark_frame = watermark_shape.add_text_frame(watermark_text)

Tekstowy znak wodny

Znak wodny graficzny

Dodaj graficzny znak wodny do prezentacji

Aby dodać graficzny znak wodny do slajdu prezentacji, możesz wykonać następujące kroki:

with open("watermark.png", "rb") as image_stream:
    image = presentation.images.add_image(image_stream.read())

    watermark_shape.fill_format.fill_type = FillType.PICTURE
    watermark_shape.fill_format.picture_fill_format.picture.image = image
    watermark_shape.fill_format.picture_fill_format.picture_fill_mode = PictureFillMode.STRETCH

Zablokuj znak wodny przed edycją

Jeśli konieczne jest zapobieżenie edycji znaku wodnego, użyj właściwości AutoShape.auto_shape_lock na kształcie. Dzięki tej właściwości możesz chronić kształt przed zaznaczaniem, zmianą rozmiaru, przemieszczaniem, grupowaniem z innymi elementami, zablokować jego tekst przed edycją i wiele więcej:

# Zablokuj kształt znaku wodnego przed modyfikacją
watermark_shape.auto_shape_lock.select_locked = True
watermark_shape.auto_shape_lock.size_locked = True
watermark_shape.auto_shape_lock.text_locked = True
watermark_shape.auto_shape_lock.position_locked = True
watermark_shape.auto_shape_lock.grouping_locked = True

Przenieś znak wodny na wierzch

W Aspose.Slides kolejność Z kształtów można ustawić za pomocą metody ShapeCollection.reorder. Aby to zrobić, należy wywołać tę metodę z listy slajdów prezentacji, przekazując referencję do kształtu oraz jego numer kolejności. Dzięki temu można przenieść kształt na wierzch lub cofnąć go na tył slajdu. Funkcja ta jest szczególnie przydatna, gdy trzeba umieścić znak wodny przed zawartością prezentacji:

shape_count = len(slide.shapes)
slide.shapes.reorder(shape_count - 1, watermark_shape)

Ustaw obrót znaku wodnego

Poniżej przykład kodu, który pokazuje, jak dostosować obrót znaku wodnego, aby był ustawiony ukośnie na slajdzie:

diagonal_angle = math.atan(slide_size.height / slide_size.width) * 180 / math.pi

watermark_shape.rotation = float(diagonal_angle)

Ustaw nazwę znaku wodnego

Aspose.Slides pozwala ustawić nazwę kształtu. Korzystając z nazwy kształtu, można w przyszłości uzyskać do niego dostęp w celu modyfikacji lub usunięcia. Aby ustawić nazwę kształtu znaku wodnego, przypisz ją do właściwości AutoShape.name:

watermark_shape.name = "watermark"

Usuń znak wodny

Aby usunąć kształt znaku wodnego, użyj metody AutoShape.name aby znaleźć go wśród kształtów slajdu. Następnie przekaż kształt znaku wodnego do metody ShapeCollection.remove:

slide_shapes = list(slide.shapes)
for shape in slide_shapes:
    if shape.name == "watermark":
        slide.shapes.remove(watermark_shape)

Przykład na żywo

Możesz wypróbować darmowe narzędzia online Aspose.Slides: Add Watermark oraz Remove Watermark.

Narzędzia online do dodawania i usuwania znaków wodnych

FAQ

Czym jest znak wodny i dlaczego powinienem go używać?

Znak wodny to nakładka tekstowa lub graficzna nakładana na slajdy, która pomaga chronić własność intelektualną, zwiększać rozpoznawalność marki lub zapobiegać nieautoryzowanemu użyciu prezentacji.

Czy mogę dodać znak wodny do wszystkich slajdów w prezentacji?

Tak, Aspose.Slides umożliwia dodanie znaku wodnego do każdego slajdu w prezentacji. Można przeiterować wszystkie slajdy i zastosować ustawienia znaku wodnego indywidualnie.

Jak mogę dostosować przezroczystość znaku wodnego?

Możesz dostosować przezroczystość znaku wodnego, modyfikując ustawienia wypełnienia (FillFormat) kształtu. Dzięki temu znak wodny jest subtelny i nie odciąga uwagi od treści slajdu.

Jakie formaty obrazów są obsługiwane dla znaków wodnych?

Aspose.Slides obsługuje różne formaty obrazów, takie jak PNG, JPEG, GIF, BMP, SVG i inne.

Czy mogę dostosować czcionkę i styl tekstowego znaku wodnego?

Tak, możesz wybrać dowolną czcionkę, rozmiar i styl, aby dopasować je do projektu prezentacji i zachować spójność marki.

Jak zmienić pozycję lub orientację znaku wodnego?

Możesz zmienić pozycję i orientację znaku wodnego, modyfikując współrzędne, rozmiar i właściwości obrotu shape.