Ajouter des filigranes aux présentations en Python
À propos des filigranes
Un filigrane dans une présentation est un tampon texte ou image utilisé sur une diapositive ou sur l’ensemble des diapositives d’une présentation. Habituellement, un filigrane sert à indiquer que la présentation est un brouillon (par ex. un filigrane « Brouillon »), qu’elle contient des informations confidentielles (par ex. un filigrane « Confidentiel »), à préciser à quelle société elle appartient (par ex. un filigrane « Nom de l’entreprise »), à identifier l’auteur de la présentation, etc. Un filigrane contribue à prévenir les violations de droits d’auteur en indiquant que la présentation ne doit pas être copiée. Les filigranes sont utilisés à la fois dans les formats PowerPoint et OpenOffice. Dans Aspose.Slides, vous pouvez ajouter un filigrane aux formats de fichiers PowerPoint PPT, PPTX et OpenOffice ODP.
Dans Aspose.Slides, il existe différentes manières de créer des filigranes dans des documents PowerPoint ou OpenOffice et de modifier leur conception et leur comportement. L’aspect commun est que, pour ajouter des filigranes texte, vous devez utiliser la classe TextFrame, et pour ajouter des filigranes image, utilisez la classe PictureFrame ou remplissez une forme de filigrane avec une image. PictureFrame implémente la classe Shape, vous permettant d’utiliser tous les réglages flexibles de l’objet forme. Comme TextFrame n’est pas une forme et que ses paramètres sont limités, il est encapsulé dans un objet Shape.
Il existe deux façons d’appliquer un filigrane : à une seule diapositive ou à toutes les diapositives de la présentation. Le Masque des diapositives (Slide Master) est utilisé pour appliquer un filigrane à toutes les diapositives — le filigrane est ajouté au Masque des diapositives, entièrement conçu à cet endroit, et appliqué à toutes les diapositives sans affecter la permission de modifier le filigrane sur les diapositives individuelles.
Un filigrane est généralement considéré comme non modifiable par d’autres utilisateurs. Pour empêcher le filigrane (ou plutôt la forme parent du filigrane) d’être édité, Aspose.Slides fournit une fonctionnalité de verrouillage de forme. Une forme spécifique peut être verrouillée sur une diapositive normale ou sur un Masque des diapositives. Lorsque la forme du filigrane est verrouillée sur le Masque des diapositives, elle le sera sur toutes les diapositives de la présentation.
Vous pouvez attribuer un nom au filigrane afin que, ultérieurement, si vous devez le supprimer, vous puissiez le retrouver parmi les formes de la diapositive par son nom.
Vous pouvez concevoir le filigrane comme vous le souhaitez ; toutefois, il existe généralement des caractéristiques communes aux filigranes, telles que l’alignement centré, la rotation, la position en avant-plan, etc. Nous verrons comment les exploiter dans les exemples ci‑dessous.
Filigrane texte
Ajouter un filigrane texte à une diapositive
Pour ajouter un filigrane texte dans PPT, PPTX ou ODP, vous pouvez d’abord ajouter une forme à la diapositive, puis ajouter un cadre texte à cette forme. Le cadre texte est représenté par la classe TextFrame. Ce type n’est pas hérité de Shape, qui possède un large éventail de propriétés pour positionner le filigrane de façon flexible. Ainsi, l’objet TextFrame est encapsulé dans un objet AutoShape. Pour ajouter du texte de filigrane à la forme, utilisez la méthode add_text_frame comme indiqué ci‑dessous.
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)
Voir aussi
Ajouter un filigrane texte à une présentation
Si vous souhaitez ajouter un filigrane texte à l’ensemble de la présentation (c’est‑à‑dire à toutes les diapositives en une fois), ajoutez‑le au MasterSlide. Le reste de la logique est identique à celui de l’ajout d’un filigrane à une seule diapositive — créez un objet AutoShape puis ajoutez le filigrane à l’aide de la méthode 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)
Voir aussi
Définir la transparence de la forme du filigrane
Par défaut, la forme rectangulaire possède des couleurs de remplissage et de contour. Les lignes de code suivantes rendent la forme transparente.
watermark_shape.fill_format.fill_type = FillType.NO_FILL
watermark_shape.line_format.fill_format.fill_type = FillType.NO_FILL
Définir la police d’un filigrane texte
Vous pouvez modifier la police du texte du filigrane comme indiqué ci‑dessous.
text_format = watermark_frame.paragraphs[0].paragraph_format.default_portion_format
text_format.latin_font = FontData("Arial")
text_format.font_height = 50
Définir la couleur du texte du filigrane
Pour définir la couleur du texte du filigrane, utilisez ce code :
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)
Centrer un filigrane texte
Il est possible de centrer le filigrane sur une diapositive, et pour cela vous pouvez procéder comme suit :
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)
L’image ci‑dessous montre le résultat final.

Filigrane image
Ajouter un filigrane image à une présentation
Pour ajouter un filigrane image à une diapositive de présentation, vous pouvez procéder comme suit :
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
Verrouiller un filigrane contre l’édition
S’il est nécessaire d’empêcher la modification d’un filigrane, utilisez la propriété AutoShape.auto_shape_lock sur la forme. Grâce à cette propriété, vous pouvez protéger la forme contre la sélection, le redimensionnement, le repositionnement, le groupement avec d’autres éléments, le verrouillage du texte contre l’édition, et bien plus encore :
# Verrouiller la forme du filigrane contre la modification
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
Mettre un filigrane au premier plan
Dans Aspose.Slides, l’ordre Z des formes peut être défini via la méthode ShapeCollection.reorder. Pour ce faire, vous devez appeler cette méthode depuis la liste des diapositives de la présentation en passant la référence de la forme et son numéro d’ordre. Ainsi, il est possible de mettre une forme au premier plan ou de l’envoyer à l’arrière de la diapositive. Cette fonctionnalité est particulièrement utile si vous devez placer un filigrane devant le contenu de la présentation :
shape_count = len(slide.shapes)
slide.shapes.reorder(shape_count - 1, watermark_shape)
Définir la rotation du filigrane
Voici un exemple de code montrant comment ajuster la rotation du filigrane afin qu’il soit positionné en diagonale sur la diapositive :
diagonal_angle = math.atan(slide_size.height / slide_size.width) * 180 / math.pi
watermark_shape.rotation = float(diagonal_angle)
Attribuer un nom à un filigrane
Aspose.Slides vous permet de définir le nom d’une forme. En utilisant le nom de la forme, vous pouvez y accéder ultérieurement pour la modifier ou la supprimer. Pour définir le nom de la forme du filigrane, affectez‑le à la propriété AutoShape.name:
watermark_shape.name = "watermark"
Supprimer un filigrane
Pour supprimer la forme du filigrane, utilisez la méthode AutoShape.name afin de la retrouver parmi les formes de la diapositive. Ensuite, transmettez la forme du filigrane à la méthode ShapeCollection.remove:
slide_shapes = list(slide.shapes)
for shape in slide_shapes:
if shape.name == "watermark":
slide.shapes.remove(watermark_shape)
Exemple en direct
Vous pouvez essayer les outils en ligne gratuits Aspose.Slides Add Watermark et Remove Watermark.

FAQ
Qu’est‑ce qu’un filigrane et pourquoi l’utiliser ?
Un filigrane est une superposition texte ou image appliquée aux diapositives qui aide à protéger la propriété intellectuelle, à renforcer la reconnaissance de la marque ou à empêcher l’utilisation non autorisée des présentations.
Puis‑je ajouter un filigrane à toutes les diapositives d’une présentation ?
Oui, Aspose.Slides vous permet d’ajouter un filigrane à chaque diapositive d’une présentation. Vous pouvez parcourir toutes les diapositives et appliquer les paramètres du filigrane individuellement.
Comment ajuster la transparence du filigrane ?
Vous pouvez ajuster la transparence du filigrane en modifiant les paramètres de remplissage (FillFormat) de la forme. Cela garantit que le filigrane reste discret et ne détourne pas l’attention du contenu de la diapositive.
Quels formats d’image sont pris en charge pour les filigranes ?
Aspose.Slides prend en charge divers formats d’image tels que PNG, JPEG, GIF, BMP, SVG, et plus encore.
Puis‑je personnaliser la police et le style d’un filigrane texte ?
Oui, vous pouvez choisir n’importe quelle police, taille et style afin qu’ils correspondent à la conception de votre présentation et maintiennent la cohérence de la marque.
Comment modifier la position ou l’orientation d’un filigrane ?
Vous pouvez ajuster la position et l’orientation du filigrane en modifiant les coordonnées, la taille et les propriétés de rotation de la shape.