Arbeiten mit Kommentaren und SprecherNoten — Aspose.Slides FOSS für C++

Aspose.Slides FOSS for C++ supports two types of annotations: mit Slide Kommentare (siehe in der Überprüfungsmodus) und Sprecher Noten (siehe in Presenter View und der Noten pane).


Threaded Kommentare

Kommentare sind an einen Slide angeschlossen und mit einem Autor verbunden. pres.comment_authors() Die Sammlung wird von allen Autoren verwaltet; jeder Autor hat eine comments() Sammlung für das hinzufügen und Lesen von Kommentaren.

Ein Kommentar hinzufügen

#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;
}

Die PointF Position ist in Zoll vom oberen linken Ecke der Slide. Mehrere Kommentare können an die gleiche Slide hinzugefügt werden, indem Sie add_comment() wieder zu.

Mehrere Autoren und Kommentare

#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;
}

Lesen Sie Kommentare aus einem bestehenden Datei

#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;
}

Sprecher Notes

Speaker-Note werden per-slide auf einer NotesSlide Objekt. Zugang durch slide.notes_slide_manager().

Sprachnoten zu einem Slide hinzufügen

#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;
}

Überprüfen Sie, ob ein Notes Slide bereits existiert

notes_slide_manager().notes_slide() Rückkehr nullptr wenn noch keine Notes-Slide erstellt wurde:

#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;
}

Siehe auch

 Deutsch