Δημιουργία προσαρμοσμένου προβολέα παρουσίασης σε C++

Εισαγωγή

Το Aspose.Slides για C++ χρησιμοποιείται για τη δημιουργία αρχείων παρουσίασης με διαφάνειες. Αυτές οι διαφάνειες μπορούν να προβληθούν ανοίγοντας τις παρουσιάσεις στο Microsoft PowerPoint, για παράδειγμα. Ωστόσο, μερικές φορές οι προγραμματιστές μπορεί να χρειαστεί να βλέπουν τις διαφάνειες ως εικόνες στον προτιμώμενο προβολέα εικόνων ή να δημιουργήσουν το δικό τους πρόγραμμα προβολής παρουσίασης. Σε τέτοιες περιπτώσεις, το Aspose.Slides επιτρέπει την εξαγωγή μιας μεμονωμένης διαφάνειας ως εικόνας. Αυτό το άρθρο περιγράφει πώς γίνεται.

Δημιουργία εικόνας SVG από διαφάνεια

Για να δημιουργήσετε μια εικόνα SVG από μια διαφάνεια παρουσίασης με το Aspose.Slides, ακολουθήστε τα παρακάτω βήματα:

  1. Δημιουργήστε ένα αντικείμενο της κλάσης Presentation .
  2. Αποκτήστε την αναφορά της διαφάνειας με το δείκτη της .
  3. Ανοίξτε μια ροή αρχείου .
  4. Αποθηκεύστε τη διαφάνεια ως εικόνα SVG στη ροή αρχείου .
auto slideIndex = 0;

auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);

auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream);
svgStream->Dispose();

presentation->Dispose();

Δημιουργία SVG με προσαρμοσμένο αναγνωριστικό σχήματος

Το Aspose.Slides μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός SVG από μια διαφάνεια με προσαρμοσμένο αναγνωριστικό σχήματος. Για να το κάνετε αυτό, χρησιμοποιήστε τη μέθοδο set_Id από το ISvgShape. Μπορεί να χρησιμοποιηθεί το CustomSvgShapeFormattingController για να ορίσετε το αναγνωριστικό του σχήματος.

auto slideIndex = 0;

auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);

auto svgOptions = MakeObject<SVGOptions>();
svgOptions->set_ShapeFormattingController(MakeObject<CustomSvgShapeFormattingController>());

auto svgStream = File::Create(u"output.svg");
slide->WriteAsSvg(svgStream, svgOptions);
svgStream->Dispose();

presentation->Dispose();
class CustomSvgShapeFormattingController : public ISvgShapeFormattingController
{
private:
    int m_shapeIndex;

public:
    CustomSvgShapeFormattingController(int shapeStartIndex = 0)
    {
        m_shapeIndex = shapeStartIndex;
    }

    void FormatShape(SharedPtr<ISvgShape> svgShape, SharedPtr<IShape> shape)
    {
        svgShape->set_Id(String::Format(u"shape-{0}", m_shapeIndex++));
    }
};

Δημιουργία μικρογραφίας διαφάνειας

Το Aspose.Slides σας βοηθά να δημιουργήσετε μικρογραφίες διαφανειών. Για να δημιουργήσετε μια μικρογραφία μιας διαφάνειας χρησιμοποιώντας το Aspose.Slides, ακολουθήστε τα παρακάτω βήματα:

  1. Δημιουργήστε ένα αντικείμενο της κλάσης Presentation .
  2. Αποκτήστε την αναφορά της διαφάνειας με το δείκτη της .
  3. Αποκτήστε την εικόνα μικρογραφίας της αναφοράς διαφάνειας σε καθορισμένη κλίμακα .
  4. Αποθηκεύστε τη μικρογραφία σε οποιαδήποτε επιθυμητή μορφή εικόνας .
auto slideIndex = 0;
auto scaleX = 1;
auto scaleY = scaleX;

auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);

auto image = slide->GetImage(scaleX, scaleY);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

Δημιουργία μικρογραφίας διαφάνειας με διαστάσεις ορισμένες από τον χρήστη

Για να δημιουργήσετε μια μικρογραφία διαφάνειας με διαστάσεις που ορίζονται από τον χρήστη, ακολουθήστε τα παρακάτω βήματα:

  1. Δημιουργήστε ένα αντικείμενο της κλάσης Presentation .
  2. Αποκτήστε την αναφορά της διαφάνειας με το δείκτη της .
  3. Αποκτήστε την εικόνα μικρογραφίας της αναφοράς διαφάνειας με τις καθορισμένες διαστάσεις .
  4. Αποθηκεύστε τη μικρογραφία σε οποιαδήποτε επιθυμητή μορφή εικόνας .
auto slideIndex = 0;
auto slideSize = Size(1200, 800);

auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);

auto image = slide->GetImage(slideSize);
image->Save(u"output.jpg", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

Δημιουργία μικρογραφίας διαφάνειας με σημειώσεις ομιλητή

Για να δημιουργήσετε τη μικρογραφία μιας διαφάνειας με σημειώσεις ομιλητή χρησιμοποιώντας το Aspose.Slides, ακολουθήστε τα παρακάτω βήματα:

  1. Δημιουργήστε ένα αντικείμενο της κλάσης RenderingOptions .
  2. Χρησιμοποιήστε τη μέθοδο RenderingOptions.set_SlidesLayoutOptions για να ορίσετε τη θέση των σημειώσεων ομιλητή .
  3. Δημιουργήστε ένα αντικείμενο της κλάσης Presentation .
  4. Αποκτήστε την αναφορά της διαφάνειας με το δείκτη της .
  5. Αποκτήστε την εικόνα μικρογραφίας της αναφοράς διαφάνειας με τις ρυθμίσεις απόδοσης .
  6. Αποθηκεύστε τη μικρογραφία σε οποιαδήποτε επιθυμητή μορφή εικόνας .
auto slideIndex = 0;

auto layoutingOptions = MakeObject<NotesCommentsLayoutingOptions>();
layoutingOptions->set_NotesPosition(NotesPositions::BottomTruncated);

auto renderingOptions = MakeObject<RenderingOptions>();
renderingOptions->set_SlidesLayoutOptions(layoutingOptions);

auto presentation = MakeObject<Presentation>(u"sample.pptx");
auto slide = presentation->get_Slide(slideIndex);

auto image = slide->GetImage(renderingOptions);
image->Save(u"output.png", ImageFormat::Png);
image->Dispose();

presentation->Dispose();

Ζωντανό Παράδειγμα

Μπορείτε να δοκιμάσετε την ελεύθερη εφαρμογή Aspose.Slides Viewer για να δείτε τι μπορείτε να υλοποιήσετε με το API του Aspose.Slides:

Online προβολέας PowerPoint

Συχνές ερωτήσεις

Μπορώ να ενσωματώσω έναν προβολέα παρουσίασης σε μια web εφαρμογή;

Ναι. Μπορείτε να χρησιμοποιήσετε το Aspose.Slides στην πλευρά του διακομιστή για να αποδίδετε τις διαφάνειες ως εικόνες ή HTML και να τις εμφανίζετε στο πρόγραμμα περιήγησης. Οι λειτουργίες πλοήγησης και ζουμ μπορούν να υλοποιηθούν με JavaScript για μια διαδραστική εμπειρία.

Ποιος είναι ο καλύτερος τρόπος για να εμφανίσετε διαφάνειες σε έναν προσαρμοσμένο προβολέα;

Η συνιστώμενη προσέγγιση είναι να αποδίδετε κάθε διαφάνεια ως εικόνα (π.χ., PNG ή SVG) ή να τη μετατρέπετε σε HTML χρησιμοποιώντας το Aspose.Slides, και στη συνέχεια να εμφανίζετε το αποτέλεσμα μέσα σε ένα picture box (για επιτραπέζιους υπολογιστές) ή σε ένα HTML container (για το web).

Πώς να διαχειριστώ μεγάλες παρουσιάσεις με πολλές διαφάνειες;

Για μεγάλες παρουσιάσεις, σκεφτείτε τη φερέωση (lazy-loading) ή την απόδοση κατόπιν ζήτησης των διαφανειών. Αυτό σημαίνει ότι το περιεχόμενο μιας διαφάνειας δημιουργείται μόνο όταν ο χρήστης πλοηγείται σε αυτήν, μειώνοντας τη χρήση μνήμης και το χρόνο φόρτωσης.