Hantera presentationskommentarer på Android
Översikt
Den här artikeln förklarar hur man hanterar presentationskommentarer i Aspose.Slides. Den visar de viktigaste typerna relaterade till kommentarer och demonstrerar hur man lägger till kommentarer på bilder, får åtkomst till befintliga kommentarer, arbetar med svar, använder moderna kommentarer och tar bort kommentarer från en presentation.
Exemplen fokuserar på vanliga gransknings- och samarbetsscenarier i PowerPoint, såsom att tilldela kommentarer till författare, läsa kommentarens innehåll och metadata, bygga svarskedjor samt rensa alla kommentarer eller ta bort utvalda.
I PowerPoint visas en kommentar som en anteckning eller anmärkning på en bild. När en kommentar klickas på avslöjas dess innehåll eller meddelanden.
Varför lägga till kommentarer i presentationer?
Du kanske vill använda kommentarer för att ge återkoppling eller kommunicera med dina kollegor när du granskar presentationer.
För att du ska kunna använda kommentarer i PowerPoint‑presentationer erbjuder Aspose.Slides for Android via Java:
- Klassen Presentation som innehåller samlingar av författare (från gränssnittet ICommentAuthorCollection). Författarna lägger till kommentarer på bilder.
- Gränssnittet ICommentCollection som innehåller samlingen av kommentarer för enskilda författare.
- Klassen IComment som innehåller information om författare och deras kommentarer: vem som lade till kommentaren, tidpunkten då kommentaren lades till, kommentarens position osv.
- Klassen CommentAuthor som innehåller information om enskilda författare: författarens namn, hans initialer, kommentarer associerade med författarens namn osv.
Lägg till en bildkommentar
Denna Java‑kod visar hur du lägger till en kommentar på en bild i en PowerPoint‑presentation:
// Instansierar Presentation-klassen
Presentation pres = new Presentation();
try {
// Lägger till en tom bild
pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0));
// Lägger till en författare
ICommentAuthor author = pres.getCommentAuthors().addAuthor("Jawad", "MF");
// Ställer in positionen för kommentarer
Point2D.Float point = new Point2D.Float(0.2f, 0.2f);
// Lägger till en bildkommentar för en författare på bild 1
author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, new Date());
// Lägger till en bildkommentar för en författare på bild 2
author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, new Date());
// Åtkomst till ISlide 1
ISlide slide = pres.getSlides().get_Item(0);
// När null skickas som argument, hämtas kommentarer från alla författare till den valda bilden
IComment[] Comments = slide.getSlideComments(author);
// Åtkomst till kommentaren på index 0 för bild 1
String str = Comments[0].getText();
pres.save("Comments_out.pptx", SaveFormat.Pptx);
if (Comments.length > 0)
{
// Väljer författarens kommentarsamling på index 0
ICommentCollection commentCollection = Comments[0].getAuthor().getComments();
String Comment = commentCollection.get_Item(0).getText();
}
} finally {
if (pres != null) pres.dispose();
}
Få åtkomst till bildkommentarer
Denna Java‑kod visar hur du får åtkomst till en befintlig kommentar på en bild i en PowerPoint‑presentation:
// Instansierar Presentation-klassen
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();
}
Svara på kommentarer
En föräldrakommentar är den översta eller ursprungliga kommentaren i en hierarki av kommentarer eller svar. Genom att använda metoderna getParentComment eller setParentComment (från gränssnittet IComment) kan du ange eller hämta en föräldrakommentar.
Presentation pres = new Presentation();
try {
// Lägger till en kommentar
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());
// Lägger till ett svar på kommentar1
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);
// Lägger till ett annat svar på kommentar1
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);
// Lägger till ett svar på ett befintligt svar
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);
// Visar kommentarshierarkin i konsolen
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);
// Tar bort kommentar1 och alla svar på den
comment1.remove();
pres.save("remove_comment.pptx",SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Attention
- När metoden Remove (från gränssnittet IComment) används för att ta bort en kommentar, tas även svaren på kommentaren bort.
- Om inställningen setParentComment resulterar i en cirkulär referens kastas ett PptxEditException.
Lägg till en modern kommentar
År 2021 introducerade Microsoft moderna kommentarer i PowerPoint. Funktionen för moderna kommentarer förbättrar samarbetet i PowerPoint avsevärt. Med moderna kommentarer kan PowerPoint‑användare lösa kommentarer, fästa kommentarer på objekt och texter samt interagera mycket enklare än tidigare.
Aspose.Slides stödjer moderna kommentarer via klassen ModernComment. Metoderna addModernComment och insertModernComment har lagts till i klassen CommentCollection.
Denna Java‑kod visar hur du lägger till en modern kommentar på en bild i en PowerPoint‑presentation:
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();
}
Ta bort en kommentar
Ta bort alla kommentarer och författare
Denna Java‑kod visar hur du tar bort alla kommentarer och författare i en presentation:
Presentation presentation = new Presentation("example.pptx");
try {
// Raderar alla kommentarer från presentationen
for (ICommentAuthor author : presentation.getCommentAuthors())
{
author.getComments().clear();
}
// Raderar alla författare
presentation.getCommentAuthors().clear();
presentation.save("example_out.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Ta bort specifika kommentarer
Denna Java‑kod visar hur du tar bort specifika kommentarer på en bild:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// lägg till kommentarer...
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());
// ta bort alla kommentarer som innehåller texten "comment 1"
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();
}
Vanliga frågor
Stöder Aspose.Slides en status som “resolved” för moderna kommentarer?
Ja. Modern comments har en setStatus‑metod; du kan ange ett kommentarens tillstånd (till exempel markera den som resolved), och detta tillstånd sparas i filen och känns igen av PowerPoint.
Stöds trådade diskussioner (svarskedjor) och finns det någon begränsning för nästlingsdjup?
Ja. Varje kommentar kan referera till sin parent comment, vilket möjliggör godtyckliga svarskedjor. API‑et deklarerar ingen specifik gräns för nästlingsdjupet.
I vilket koordinatsystem definieras en kommentarmärkares position på en bild?
Positionen lagras som en flyttalspunkt i bildens koordinatsystem. Detta gör att du kan placera kommentarmärket exakt där du behöver det.