Kelola Komentar Presentasi di Android
Gambaran Umum
Artikel ini menjelaskan cara mengelola komentar presentasi di Aspose.Slides. Artikel ini menampilkan tipe terkait komentar utama dan mendemonstrasikan cara menambahkan komentar ke slide, mengakses komentar yang ada, bekerja dengan balasan, menggunakan komentar modern, dan menghapus komentar dari sebuah presentasi.
Contoh‑contoh berfokus pada skenario peninjauan dan kolaborasi umum di PowerPoint, seperti menetapkan komentar ke penulis, membaca konten dan metadata komentar, membangun rantai balasan, serta menghapus semua komentar atau menghapus komentar yang dipilih.
Di PowerPoint, komentar muncul sebagai catatan atau anotasi pada slide. Ketika komentar diklik, isinya atau pesan‑pesannya akan ditampilkan.
Mengapa Menambahkan Komentar ke Presentasi?
Anda mungkin ingin menggunakan komentar untuk memberikan masukan atau berkomunikasi dengan kolega saat meninjau presentasi.
Untuk memungkinkan Anda menggunakan komentar dalam presentasi PowerPoint, Aspose.Slides untuk Android via Java menyediakan
- Kelas Presentation yang berisi kumpulan penulis (dari antarmuka ICommentAuthorCollection). Penulis menambahkan komentar ke slide.
- Antarmuka ICommentCollection yang berisi kumpulan komentar untuk masing‑mahasiswa penulis.
- Kelas IComment yang berisi informasi tentang penulis dan komentar mereka: siapa yang menambahkan komentar, waktu komentar ditambahkan, posisi komentar, dll.
- Kelas CommentAuthor yang berisi informasi tentang masing‑mahasiswa penulis: nama penulis, inisialnya, komentar yang terkait dengan nama penulis, dll.
Tambahkan Komentar Slide
Kode Java ini menunjukkan cara menambahkan komentar ke slide dalam presentasi PowerPoint:
// Membuat instance kelas Presentation
Presentation pres = new Presentation();
try {
// Menambahkan slide kosong
pres.getSlides().addEmptySlide(pres.getLayoutSlides().get_Item(0));
// Menambahkan penulis
ICommentAuthor author = pres.getCommentAuthors().addAuthor("Jawad", "MF");
// Menetapkan posisi untuk komentar
Point2D.Float point = new Point2D.Float(0.2f, 0.2f);
// Menambahkan komentar slide untuk penulis pada slide 1
author.getComments().addComment("Hello Jawad, this is slide comment", pres.getSlides().get_Item(0), point, new Date());
// Menambahkan komentar slide untuk penulis pada slide 2
author.getComments().addComment("Hello Jawad, this is second slide comment", pres.getSlides().get_Item(1), point, new Date());
// Mengakses ISlide 1
ISlide slide = pres.getSlides().get_Item(0);
// Ketika null diberikan sebagai argumen, komentar dari semua penulis dibawa ke slide yang dipilih
IComment[] Comments = slide.getSlideComments(author);
// Mengakses komentar pada indeks 0 untuk slide 1
String str = Comments[0].getText();
pres.save("Comments_out.pptx", SaveFormat.Pptx);
if (Comments.length > 0)
{
// Memilih koleksi komentar Penulis pada indeks 0
ICommentCollection commentCollection = Comments[0].getAuthor().getComments();
String Comment = commentCollection.get_Item(0).getText();
}
} finally {
if (pres != null) pres.dispose();
}
Akses Komentar Slide
Kode Java ini menunjukkan cara mengakses komentar yang ada pada slide dalam presentasi PowerPoint:
// Membuat instance kelas Presentation
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();
}
Balas Komentar
Komentar induk adalah komentar teratas atau asli dalam hierarki komentar atau balasan. Dengan menggunakan metode getParentComment atau setParentComment (dari antarmuka IComment), Anda dapat mengatur atau mengambil komentar induk.
Kode Java ini menunjukkan cara menambahkan komentar dan mendapatkan balasannya:
Presentation pres = new Presentation();
try {
// Menambahkan komentar
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());
// Menambahkan balasan ke 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);
// Menambahkan balasan lain ke 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);
// Menambahkan balasan ke balasan yang ada
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);
// Menampilkan hierarki komentar di konsol
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);
// Menghapus comment1 dan semua balasannya
comment1.remove();
pres.save("remove_comment.pptx",SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Attention
- Saat metode Remove (dari antarmuka IComment) digunakan untuk menghapus komentar, balasan pada komentar tersebut juga akan dihapus.
- Jika pengaturan setParentComment menghasilkan referensi melingkar, PptxEditException akan dilemparkan.
Tambahkan Komentar Modern
Pada 2021, Microsoft memperkenalkan komentar modern di PowerPoint. Fitur komentar modern secara signifikan meningkatkan kolaborasi di PowerPoint. Melalui komentar modern, pengguna PowerPoint dapat menyelesaikan komentar, menambatkan komentar pada objek dan teks, serta berinteraksi jauh lebih mudah daripada sebelumnya.
Aspose.Slides mendukung komentar modern melalui kelas ModernComment. Metode addModernComment dan insertModernComment ditambahkan ke kelas CommentCollection.
Kode Java ini menunjukkan cara menambahkan komentar modern ke slide dalam presentasi PowerPoint:
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();
}
Hapus Komentar
Hapus Semua Komentar dan Penulis
Kode Java ini menunjukkan cara menghapus semua komentar dan penulis dalam sebuah presentasi:
Presentation presentation = new Presentation("example.pptx");
try {
// Menghapus semua komentar dari presentasi
for (ICommentAuthor author : presentation.getCommentAuthors())
{
author.getComments().clear();
}
// Menghapus semua penulis
presentation.getCommentAuthors().clear();
presentation.save("example_out.pptx", SaveFormat.Pptx);
} finally {
if (presentation != null) presentation.dispose();
}
Hapus Komentar Tertentu
Kode Java ini menunjukkan cara menghapus komentar tertentu pada slide:
Presentation presentation = new Presentation();
try {
ISlide slide = presentation.getSlides().get_Item(0);
// menambahkan komentar...
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());
// menghapus semua komentar yang berisi teks "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();
}
Tanya Jawab
Apakah Aspose.Slides mendukung status seperti ‘resolved’ untuk komentar modern?
Ya. Komentar modern menyediakan metode setStatus; Anda dapat menulis status komentar (misalnya, menandainya sebagai terselesaikan), dan status ini disimpan dalam file serta dikenali oleh PowerPoint.
Apakah diskusi beruntun (rantai balasan) didukung, dan apakah ada batas kedalaman?
Ya. Setiap komentar dapat merujuk ke komentar induk, memungkinkan rantai balasan tak terbatas. API tidak menyatakan batas kedalaman tertentu.
Dalam sistem koordinat apa posisi penanda komentar didefinisikan pada slide?
Posisi disimpan sebagai titik floating‑point dalam sistem koordinat slide. Ini memungkinkan Anda menempatkan penanda komentar tepat di lokasi yang diinginkan.