Beheer presentatiecommentaren in Java

Overzicht

Dit artikel legt uit hoe u presentatiecommentaren beheert in Aspose.Slides. Het toont de belangrijkste commentaar‑gerelateerde types en laat zien hoe u commentaren aan dia’s toevoegt, bestaande commentaren benadert, met antwoorden werkt, moderne commentaren gebruikt en commentaren uit een presentatie verwijdert.

De voorbeelden richten zich op veelvoorkomende review‑ en collaboratiescenario’s in PowerPoint, zoals het toewijzen van commentaren aan auteurs, het lezen van commentaarinhoud en metadata, het opbouwen van antwoordketens, en het wissen van alle commentaren of het verwijderen van geselecteerde commentaren.

In PowerPoint verschijnt een commentaar als een notitie of annotatie op een dia. Wanneer op een commentaar wordt geklikt, worden de inhoud of berichten ervan getoond.

Waarom commentaren toevoegen aan presentaties?

U wilt mogelijk commentaren gebruiken om feedback te geven of te communiceren met uw collega’s tijdens het beoordelen van presentaties.

Om u in staat te stellen commentaren te gebruiken in PowerPoint‑presentaties, biedt Aspose.Slides voor Java:

  • De Presentation‑klasse, die de collecties van auteurs bevat (van de ICommentAuthorCollection‑interface). De auteurs voegen commentaren toe aan dia’s.
  • De ICommentCollection‑interface, die de collectie van commentaren voor individuele auteurs bevat.
  • De IComment‑klasse, die informatie bevat over auteurs en hun commentaren: wie het commentaar heeft toegevoegd, het tijdstip van toevoegen, de positie van het commentaar, enz.
  • De CommentAuthor‑klasse, die informatie over individuele auteurs bevat: de naam van de auteur, zijn initialen, commentaren die aan de naam van de auteur gekoppeld zijn, enz.

Commentaren aan dia toevoegen

Deze Java‑code laat zien hoe u een commentaar toevoegt aan een dia in een PowerPoint‑presentatie:

// Instantieert de Presentation-klasse
Presentation pres = new Presentation();
try {
    // Voegt een lege dia toe
    pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0));

    // Voegt een auteur toe
    ICommentAuthor author = pres.getCommentAuthors().addAuthor("Jawad", "MF");

    // Stelt de positie voor commentaren in
    Point2D.Float point = new Point2D.Float(0.2f, 0.2f);

    // Voegt een dia-commentaar toe voor een auteur op dia 1
    author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, new Date());

    // Voegt een dia-commentaar toe voor een auteur op dia 2
    author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, new Date());

    // Benadert ISlide 1
    ISlide slide = pres.getSlides().get_Item(0);

    // Wanneer null wordt doorgegeven als argument, worden commentaren van alle auteurs naar de geselecteerde dia gehaald
    IComment[] Comments = slide.getSlideComments(author);

    // Benadert het commentaar op index 0 voor dia 1
    String str = Comments[0].getText();

    pres.save("Comments_out.pptx", SaveFormat.Pptx);

    if (Comments.length > 0)
    {
        // Selecteert de commentaarcollectie van de auteur op index 0
        ICommentCollection commentCollection = Comments[0].getAuthor().getComments();
        String Comment = commentCollection.get_Item(0).getText();
    }
} finally {
    if (pres != null) pres.dispose();
}

Commentaren op dia benaderen

Deze Java‑code laat zien hoe u een bestaand commentaar op een dia in een PowerPoint‑presentatie benadert:

// Instantieert de Presentation-klasse
Presentation pres = new Presentation("Comments1.pptx");
try {
    for (ICommentAuthor commentAuthor : pres.getCommentAuthors())
    {
        CommentAuthor author = (CommentAuthor) commentAuthor;
        for (IComment comment1 : author.getComments())
        {
            Comment comment = (Comment) comment1;
            System.out.println("ISlide :" + comment.getSlide().getSlideNumber() + " has comment: " + comment.getText() +
                    " with Author: " + comment.getAuthor().getName() + " posted on time :" + comment.getCreatedTime() + "\n");
        }
    }
} finally {
    if (pres != null) pres.dispose();
}

Antwoorden op commentaren

Een bovenliggend commentaar is het eerste of originele commentaar in een hiërarchie van commentaren of antwoorden. Met de getParentComment of setParentComment methoden (van de IComment‑interface) kunt u een bovenliggend commentaar instellen of ophalen.

Deze Java‑code laat zien hoe u commentaren toevoegt en de antwoorden hierop verkrijgt:

Presentation pres = new Presentation();
try {
    // Voegt een commentaar toe
    ICommentAuthor author1 = pres.getCommentAuthors().addAuthor("Author_1", "A.A.");
    IComment comment1 = author1.getComments().addComment("comment1", pres.getSlides().get_Item(0), new Point2D.Float(10, 10), new Date());

    // Voegt een antwoord toe aan comment1
    ICommentAuthor author2 = pres.getCommentAuthors().addAuthor("Autror_2", "B.B.");
    IComment reply1 = author2.getComments().addComment("reply 1 for comment 1", pres.getSlides().get_Item(0), new Point2D.Float(10, 10), new Date());
    reply1.setParentComment(comment1);

    // Voegt nog een antwoord toe aan comment1
    IComment reply2 = author2.getComments().addComment("reply 2 for comment 1", pres.getSlides().get_Item(0),  new Point2D.Float(10, 10), new Date());
    reply2.setParentComment(comment1);

    // Voegt een antwoord toe aan een bestaand antwoord
    IComment subReply = author1.getComments().addComment("subreply 3 for reply 2", pres.getSlides().get_Item(0),  new Point2D.Float(10, 10), new Date());
    subReply.setParentComment(reply2);

    IComment comment2 = author2.getComments().addComment("comment 2", pres.getSlides().get_Item(0), new Point2D.Float(10, 10), new Date());
    IComment comment3 = author2.getComments().addComment("comment 3", pres.getSlides().get_Item(0), new Point2D.Float(10, 10), new Date());

    IComment reply3 = author1.getComments().addComment("reply 4 for comment 3", pres.getSlides().get_Item(0), new Point2D.Float(10, 10), new Date());
    reply3.setParentComment(comment3);

    // Toont de commentaarhiërarchie op de console
    ISlide slide = pres.getSlides().get_Item(0);
    IComment[] comments = slide.getSlideComments(null);
    for (int i = 0; i < comments.length; i++)
    {
        IComment comment = comments[i];
        while (comment.getParentComment() != null)
        {
            System.out.print("\t");
            comment = comment.getParentComment();
        }

        System.out.println(comments[i].getAuthor().getName() +  " : " + comments[i].getText());
        System.out.println();
    }
    pres.save("parent_comment.pptx",SaveFormat.Pptx);

    // Verwijdert comment1 en alle antwoorden daarop
    comment1.remove();

    pres.save("remove_comment.pptx",SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Moderne commentaren toevoegen

In 2021 heeft Microsoft moderne commentaren geïntroduceerd in PowerPoint. De functie voor moderne commentaren verbetert de samenwerking in PowerPoint aanzienlijk. Met moderne commentaren kunnen PowerPoint‑gebruikers commentaren oplossen, commentaren aan objecten en tekst verankeren, en veel gemakkelijker interacties aangaan dan voorheen.

In Aspose Slides for Java 21.11 hebben we ondersteuning voor moderne commentaren geïmplementeerd door de ModernComment‑klasse toe te voegen. De addModernComment‑ en insertModernComment‑methoden zijn toegevoegd aan de CommentCollection‑klasse.

Deze Java‑code laat zien hoe u een modern commentaar toevoegt aan een dia in een PowerPoint‑presentatie:

Presentation pres = new Presentation();
try {
    ICommentAuthor newAuthor = pres.getCommentAuthors().addAuthor("Some Author", "SA");
    IModernComment modernComment = newAuthor.getComments().addModernComment("This is a modern comment", pres.getSlides().get_Item(0), null, new Point2D.Float(100, 100), new Date());

    pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (pres != null) pres.dispose();
}

Commentaren verwijderen

Alle commentaren en auteurs verwijderen

Deze Java‑code laat zien hoe u alle commentaren en auteurs in een presentatie verwijdert:

Presentation presentation = new Presentation("example.pptx");
try {
    // Verwijdert alle commentaren uit de presentatie
    for (ICommentAuthor author : presentation.getCommentAuthors())
    {
        author.getComments().clear();
    }

    // Verwijdert alle auteurs
    presentation.getCommentAuthors().clear();

    presentation.save("example_out.pptx", SaveFormat.Pptx);
} finally {
    if (presentation != null) presentation.dispose();
}

Specifieke commentaren verwijderen

Deze Java‑code laat zien hoe u specifieke commentaren op een dia verwijdert:

Presentation presentation = new Presentation();
try {
    ISlide slide = presentation.getSlides().get_Item(0);

    // voeg commentaren toe...
    ICommentAuthor author = presentation.getCommentAuthors().addAuthor("Author", "A");
    author.getComments().addComment("comment 1", slide, new Point2D.Float(0.2f, 0.2f), new Date());
    author.getComments().addComment("comment 2", slide, new Point2D.Float(0.3f, 0.2f), new Date());

    // verwijder alle commentaren die de tekst "comment 1" bevatten
    for (ICommentAuthor commentAuthor : presentation.getCommentAuthors())
    {
        ArrayList<IComment> toRemove = new ArrayList<IComment>();
        for (IComment comment : slide.getSlideComments(commentAuthor))
        {
            if (comment.getText().equals("comment 1"))
            {
                toRemove.add(comment);
            }
        }

        for (IComment comment : toRemove)
        {
            commentAuthor.getComments().remove(comment);
        }
    }

    presentation.save("pres.pptx", SaveFormat.Pptx);
} finally {
    if (presentation != null) presentation.dispose();
}

Veelgestelde vragen

Ondersteunt Aspose.Slides een status zoals ‘opgelost’ voor moderne commentaren?

Ja. Modern comments bieden een setStatus‑methode; u kunt een commentaarstatus (bijvoorbeeld markeren als opgelost) instellen, en deze status wordt opgeslagen in het bestand en wordt herkend door PowerPoint.

Worden draadgesprekken (antwoordketens) ondersteund, en is er een limiet op het nestingsniveau?

Ja. Elk commentaar kan naar zijn parent comment verwijzen, waardoor willekeurige antwoordketens mogelijk zijn. De API specificeert geen specifieke limiet voor de nestingsdiepte.

In welk coördinatensysteem wordt de positie van een commentaarmarker gedefinieerd op een dia?

De positie wordt opgeslagen als een zwevend‑kommagetal in het coördinatensysteem van de dia. Hierdoor kunt u de commentaarmarker precies plaatsen waar u dat nodig heeft.