Verwalten von Präsentationskommentaren in Python

In PowerPoint wird ein Kommentar als Notiz oder Anmerkung auf einer Folie angezeigt. Wenn ein Kommentar angeklickt wird, werden dessen Inhalt oder Nachrichten angezeigt.

Warum Kommentare zu Präsentationen hinzufügen?

Möglicherweise möchten Sie Kommentare verwenden, um Feedback zu geben oder mit Ihren Kollegen zu kommunizieren, wenn Sie Präsentationen überprüfen.

  • Die Presentation Klasse, die die Sammlungen von Autoren (aus der CommentAuthorCollection‑Eigenschaft) enthält. Die Autoren fügen Folien Kommentare hinzu.
  • Das ICommentCollection Interface, das die Sammlung von Kommentaren für einzelne Autoren enthält.
  • Die IComment Klasse, die Informationen über Autoren und deren Kommentare enthält: wer den Kommentar hinzugefügt hat, wann er hinzugefügt wurde, die Position des Kommentars usw.
  • Die CommentAuthor Klasse, die Informationen über einzelne Autoren enthält: den Namen des Autors, seine Initialen, mit dem Namen des Autors verbundene Kommentare usw.

Kommentar zur Folie hinzufügen

Dieser Python‑Code zeigt, wie Sie einem Folie in einer PowerPoint‑Präsentation einen Kommentar hinzufügen:

import aspose.slides as slides
import aspose.pydrawing as draw
import datetime

# Instanziiert die Presentation-Klasse
with slides.Presentation() as presentation:
    # Fügt eine leere Folie hinzu
    presentation.slides.add_empty_slide(presentation.layout_slides[0])

    # Fügt einen Autor hinzu
    author = presentation.comment_authors.add_author("Jawad", "MF")

    # Setzt die Position für Kommentare
    point = draw.PointF(0.2, 0.2)

    # Fügt einen Folienkommentar für einen Autor auf Folie 1 hinzu
    author.comments.add_comment("Hello Jawad, this is slide comment", presentation.slides[0], point, datetime.date.today())

    # Fügt einen Folienkommentar für einen Autor auf Folie 2 hinzu
    author.comments.add_comment("Hello Jawad, this is second slide comment", presentation.slides[1], point, datetime.date.today())

    # Zugriff auf ISlide 1
    slide = presentation.slides[0]

    # Wenn null als Argument übergeben wird, werden Kommentare aller Autoren zur ausgewählten Folie gebracht
    comments = slide.get_slide_comments(author)

    # Greift auf den Kommentar an Index 0 für Folie 1 zu
    str = comments[0].text

    presentation.save("Comments_out.pptx", slides.export.SaveFormat.PPTX)

    if comments.length > 0:
        # Wählt die Kommentarsammlung des Autors an Index 0 aus
        commentCollection = comments[0].author.comments
        print(commentCollection[0].text)

Zugriff auf Folienkommentare

Dieser Python‑Code zeigt, wie Sie auf einen vorhandenen Kommentar einer Folie in einer PowerPoint‑Präsentation zugreifen:

import aspose.slides as slides

# Instanziiert die Presentation-Klasse
with slides.Presentation("Comments1.pptx") as presentation:
    for author in presentation.comment_authors:
        for comment in author.comments:
            print("ISlide :" + str(comment.slide.slide_number) + 
            " has comment: " + comment.text + 
            " with Author: " + comment.author.name + 
            " posted on time :" + str(comment.created_time) + "\n")

Antworten auf Kommentare

Ein übergeordneter Kommentar ist der oberste bzw. ursprüngliche Kommentar in einer Hierarchie von Kommentaren oder Antworten. Mit der parent_comment‑Eigenschaft (aus dem IComment Interface) können Sie einen übergeordneten Kommentar festlegen oder abrufen.

Dieser Python‑Code zeigt, wie Sie Kommentare hinzufügen und Antworten darauf erhalten:

import aspose.slides as slides
import aspose.pydrawing as draw
import datetime

with slides.Presentation() as pres:
    # Fügt einen Kommentar hinzu
    author1 = pres.comment_authors.add_author("Author_1", "A.A.")
    comment1 = author1.comments.add_comment("comment1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())

    # Fügt eine Antwort zu comment1 hinzu
    author2 = pres.comment_authors.add_author("Autror_2", "B.B.")
    reply1 = author2.comments.add_comment("reply 1 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
    reply1.parent_comment = comment1

    # Fügt eine weitere Antwort zu comment1 hinzu
    reply2 = author2.comments.add_comment("reply 2 for comment 1", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
    reply2.parent_comment = comment1

    # Fügt eine Antwort auf vorhandene Antwort hinzu
    subReply = author1.comments.add_comment("subreply 3 for reply 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
    subReply.parent_comment = reply2

    comment2 = author2.comments.add_comment("comment 2", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
    comment3 = author2.comments.add_comment("comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())

    reply3 = author1.comments.add_comment("reply 4 for comment 3", pres.slides[0], draw.PointF(10, 10), datetime.date.today())
    reply3.parent_comment = comment3

    # Zeigt die Kommentarhierarchie in der Konsole an
    slide = pres.slides[0]
    comments = slide.get_slide_comments(None)
    for i in range(comments.length):
        comment = comments[i]
        while comment.parent_comment is not None:
            print("\t")
            comment = comment.parent_comment

        print(comments[i].author.name + " : " + comments[i].text)
        print("\r\n")

    pres.save("parent_comment.pptx", slides.export.SaveFormat.PPTX)

    # Entfernt comment1 und alle dazugehörigen Antworten
    comment1.remove()

    pres.save("remove_comment.pptx", slides.export.SaveFormat.PPTX)

Modernen Kommentar hinzufügen

Im Jahr 2021 hat Microsoft moderne Kommentare in PowerPoint eingeführt. Die Funktion moderne Kommentare verbessert die Zusammenarbeit in PowerPoint erheblich. Durch moderne Kommentare können PowerPoint‑Benutzer Kommentare auflösen, Kommentare an Objekten und Texten verankern und viel einfacher interagieren als zuvor.

Wir haben die Unterstützung für moderne Kommentare implementiert, indem wir die ModernComment Klasse hinzugefügt haben. Die Methoden add_modern_comment und insert_modern_comment wurden zur CommentCollection Klasse hinzugefügt.

Dieser Python‑Code zeigt, wie Sie einem Folie in einer PowerPoint‑Präsentation einen modernen Kommentar hinzufügen:

import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date

with slides.Presentation() as pres:
    newAuthor = pres.comment_authors.add_author("Some Author", "SA")
    modernComment = newAuthor.comments.add_modern_comment("This is a modern comment", pres.slides[0], None, draw.PointF(100, 100), date.today())

    pres.save("example.pptx", slides.export.SaveFormat.PPTX)

Kommentar entfernen

Alle Kommentare und Autoren löschen

Dieser Python‑Code zeigt, wie Sie alle Kommentare und Autoren in einer Präsentation entfernen:

import aspose.slides as slides

with slides.Presentation("example.pptx") as presentation:
    # Löscht alle Kommentare aus der Präsentation
    for author in presentation.comment_authors:
        author.comments.clear()

    # Löscht alle Autoren
    presentation.comment_authors.clear()

    presentation.save("example_out.pptx", slides.export.SaveFormat.PPTX)

Bestimmte Kommentare löschen

Dieser Python‑Code zeigt, wie Sie bestimmte Kommentare auf einer Folie löschen:

import aspose.pydrawing as draw
import aspose.slides as slides
from datetime import date

with slides.Presentation() as presentation:
    slide = presentation.slides[0]
    
    # Kommentare hinzufügen...
    author = presentation.comment_authors.add_author("Author", "A")
    author.comments.add_comment("comment 1", slide, draw.PointF(0.2, 0.2), date.today())
    author.comments.add_comment("comment 2", slide, draw.PointF(0.3, 0.2), date.today())
    
    # Alle Kommentare entfernen, die den Text "comment 1" enthalten
    for commentAuthor in presentation.comment_authors:
        toRemove = []
        for comment in slide.get_slide_comments(commentAuthor):
            if comment.text == "comment 1":
                toRemove.append(comment)
        
        for comment in toRemove:
            commentAuthor.comments.remove(comment)
    
    presentation.save("pres.pptx", slides.export.SaveFormat.PPTX)

FAQ

Unterstützt Aspose.Slides einen Status wie „gelöst“ für moderne Kommentare?

Ja. Moderne Kommentare stellen eine status‑Eigenschaft bereit; Sie können den Zustand eines Kommentars auslesen und festlegen (z. B. ihn als gelöst markieren), und dieser Zustand wird in der Datei gespeichert und von PowerPoint erkannt.

Werden verschachtelte Diskussionen (Antwortketten) unterstützt und gibt es ein Verschachtelungslimit?

Ja. Jeder Kommentar kann auf seinen parent_comment verweisen, wodurch beliebige Antwortketten ermöglicht werden. Die API legt kein spezifisches Verschachtelungstiefe‑Limit fest.

In welchem Koordinatensystem ist die Position eines Kommentarmarkers auf einer Folie definiert?

Die Position wird als Gleitkomma‑Punkt im Koordinatensystem der Folie gespeichert. Dadurch können Sie den Kommentarmarker exakt dort platzieren, wo Sie ihn benötigen.