Làm việc với Bình luận và Ghi chú Diễn giả — Aspose.Slides FOSS cho C++
Aspose.Slides FOSS for C++ hỗ trợ hai loại chú thích: threaded slide comments (hiển thị trong chế độ xem xét) và speaker notes (hiển thị trong Presenter View và khung Notes).
Bình luận dạng chuỗi
Bình luận được đính kèm vào một slide và liên kết với một tác giả. Bộ sưu tập pres.comment_authors() quản lý tất cả các tác giả; mỗi tác giả có một bộ sưu tập comments() để thêm và đọc bình luận.
Thêm bình luận
#include <Aspose/Slides/Foss/comment.h>
#include <Aspose/Slides/Foss/comment_author.h>
#include <Aspose/Slides/Foss/comment_author_collection.h>
#include <Aspose/Slides/Foss/comment_collection.h>
#include <Aspose/Slides/Foss/drawing/point_f.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <chrono>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation pres;
// Create a comment author with initials
auto& author = pres.comment_authors().add_author("Jane Smith", "JS");
auto& slide = pres.slides()[0];
// Add a comment at position (2.0, 2.0) inches from the slide top-left
author.comments().add_comment(
"Please review the figures on this slide",
slide,
PointF(2.0f, 2.0f),
std::chrono::system_clock::now()
);
pres.save("commented.pptx", SaveFormat::PPTX);
return 0;
}Vị trí PointF được tính bằng inch từ góc trên‑trái của slide. Có thể thêm nhiều bình luận vào cùng một slide bằng cách gọi add_comment() lại.
Nhiều tác giả và bình luận
#include <Aspose/Slides/Foss/comment_author.h>
#include <Aspose/Slides/Foss/comment_author_collection.h>
#include <Aspose/Slides/Foss/comment_collection.h>
#include <Aspose/Slides/Foss/drawing/point_f.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <chrono>
using namespace Aspose::Slides::Foss;
using namespace Aspose::Slides::Foss::Drawing;
int main() {
Presentation pres;
auto& author1 = pres.comment_authors().add_author("Alice Brown", "AB");
auto& author2 = pres.comment_authors().add_author("Bob Davis", "BD");
auto& slide = pres.slides()[0];
auto now = std::chrono::system_clock::now();
author1.comments().add_comment("Initial draft", slide, PointF(1.0f, 1.0f), now);
author2.comments().add_comment("Approved", slide, PointF(3.0f, 1.0f), now);
pres.save("multi-author.pptx", SaveFormat::PPTX);
return 0;
}Đọc bình luận từ tệp hiện có
#include <Aspose/Slides/Foss/comment_author.h>
#include <Aspose/Slides/Foss/comment_author_collection.h>
#include <Aspose/Slides/Foss/comment.h>
#include <Aspose/Slides/Foss/comment_collection.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <iostream>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres("commented.pptx");
for (std::size_t i = 0; i < pres.comment_authors().size(); ++i) {
auto& author = pres.comment_authors()[i];
std::cout << "Author: " << author.name() << " (" << author.initials() << ")" << std::endl;
for (std::size_t j = 0; j < author.comments().size(); ++j) {
auto& comment = author.comments()[j];
std::cout << " " << comment.text() << std::endl;
}
}
return 0;
}Ghi chú người thuyết trình
Ghi chú người nói được lưu trữ trên cơ sở mỗi slide thông qua một đối tượng NotesSlide. Truy cập nó qua slide.notes_slide_manager().
Thêm Ghi chú Diễn giả vào Slide
#include <Aspose/Slides/Foss/auto_shape.h>
#include <Aspose/Slides/Foss/export/save_format.h>
#include <Aspose/Slides/Foss/i_notes_slide.h>
#include <Aspose/Slides/Foss/i_notes_slide_manager.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/shape_collection.h>
#include <Aspose/Slides/Foss/shape_type.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres;
auto& slide = pres.slides()[0];
slide.shapes().add_auto_shape(ShapeType::RECTANGLE, 50, 50, 400, 200);
// Create the notes slide and set text
auto* notes = slide.notes_slide_manager().add_notes_slide();
notes->notes_text_frame().set_text(
"Mention the Q3 revenue increase on this slide. Emphasize the 24% growth.");
pres.save("with-notes.pptx", SaveFormat::PPTX);
return 0;
}Kiểm tra xem một slide ghi chú đã tồn tại chưa
notes_slide_manager().notes_slide() trả về nullptr nếu chưa có slide ghi chú nào được tạo:
#include <Aspose/Slides/Foss/i_notes_slide.h>
#include <Aspose/Slides/Foss/i_notes_slide_manager.h>
#include <Aspose/Slides/Foss/presentation.h>
#include <Aspose/Slides/Foss/slide.h>
#include <Aspose/Slides/Foss/slide_collection.h>
#include <Aspose/Slides/Foss/text_frame.h>
#include <iostream>
using namespace Aspose::Slides::Foss;
int main() {
Presentation pres("existing.pptx");
for (std::size_t i = 0; i < pres.slides().size(); ++i) {
auto* existing_notes = pres.slides()[i].notes_slide_manager().notes_slide();
if (existing_notes) {
auto text = existing_notes->notes_text_frame().text();
std::cout << "Slide " << (i + 1) << " notes: " << text.substr(0, 60) << "..." << std::endl;
} else {
std::cout << "Slide " << (i + 1) << ": no notes" << std::endl;
}
}
return 0;
}