ทำงานกับความคิดเห็นและบันทึกผู้พูด — Aspose.Slides FOSS for C++
Aspose.Slides FOSS for C++ supports two types of annotations: ความคิดเห็นสไลด์แบบเธรด (มองเห็นได้ในโหมดรีวิว) และ บันทึกของผู้บรรยาย (มองเห็นได้ในมุมมองผู้นำเสนอและแผงบันทึก).
ความคิดเห็นแบบเชื่อมต่อ
ความคิดเห็นจะถูกแนบกับสไลด์และเชื่อมโยงกับผู้เขียน. The pres.comment_authors() คอลเลกชันจัดการผู้เขียนทั้งหมด; แต่ละผู้เขียนมี comments() คอลเลกชันสำหรับเพิ่มและอ่านความคิดเห็น.
เพิ่มความคิดเห็น
#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;
}The PointF ตำแหน่งเป็นหน่วยนิ้วจากมุมบนซ้ายของสไลด์. สามารถเพิ่มความคิดเห็นหลายรายการในสไลด์เดียวกันโดยเรียก add_comment() อีกครั้ง.
ผู้เขียนและความคิดเห็นหลายคน
#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;
}อ่านความคิดเห็นจากไฟล์ที่มีอยู่
#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;
}บันทึกผู้บรรยาย
บันทึกของผู้บรรยายจะถูกจัดเก็บตามสไลด์โดยใช้ a NotesSlide อ็อบเจกต์. เข้าถึงมันผ่าน slide.notes_slide_manager().
เพิ่มบันทึกผู้พูดลงสไลด์
#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;
}ตรวจสอบว่ามีสไลด์บันทึกอยู่แล้วหรือไม่
notes_slide_manager().notes_slide() คืนค่า nullptr หากยังไม่มีสไลด์บันทึกถูกสร้างขึ้น:
#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;
}