Εφαρμογή ή Αλλαγή διατάξεων διαφάνειας σε C++

Introduction

Ένα διάταγμα διαφάνειας ορίζει τη διάταξη των πλαισίων placeholder και τη μορφοποίηση του περιεχομένου σε μια διαφάνεια. Ελέγχει ποια placeholders είναι διαθέσιμα και πού εμφανίζονται. Τα διατάγματα διαφάνειας σας βοηθούν να σχεδιάζετε παρουσιάσεις γρήγορα και συνεπώς—είτε δημιουργείτε κάτι απλό είτε πιο σύνθετο. Μερικά από τα πιο συνηθισμένα διατάγματα διαφάνειας στο PowerPoint περιλαμβάνουν:

Title Slide layout – Περιλαμβάνει δύο placeholders κειμένου: ένα για τον τίτλο και ένα για τον υπότιτλο.

Title and Content layout – Διαθέτει ένα μικρότερο placeholder τίτλου στην κορυφή και ένα μεγαλύτερο κάτω για το κύριο περιεχόμενο (όπως κείμενο, κουκίδες, διαγράμματα, εικόνες και άλλα).

Blank layout – Δεν περιέχει placeholders, δίνοντάς σας πλήρη έλεγχο για να σχεδιάσετε τη διαφάνεια από την αρχή.

Οι διατάξεις διαφάνειας αποτελούν μέρος ενός slide master, που είναι η ανώτερη διαφάνεια που ορίζει τα στυλ διατάξεων για την παρουσίαση. Μπορείτε να έχετε πρόσβαση και να τροποποιήσετε τις διατάξεις διαφάνειας μέσω του slide master—είτε με βάση τον τύπο, το όνομα ή το μοναδικό αναγνωριστικό τους. Εναλλακτικά, μπορείτε να επεξεργαστείτε απευθείας μια συγκεκριμένη διάταξη διαφάνειας μέσα στην παρουσίαση.

Για να εργαστείτε με διατάξεις διαφάνειας στο Aspose.Slides for Android, μπορείτε να χρησιμοποιήσετε:

Add Slide Layouts to Presentations

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

  1. Δημιουργήστε μια παρουσία της κλάσης Presentation.
  2. Πρόσβαση στο IMasterLayoutSlideCollection.
  3. Ελέγξτε εάν η επιθυμητή διάταξη διαφάνειας υπάρχει ήδη στη συλλογή. Αν όχι, προσθέστε τη διάταξη που χρειάζεστε.
  4. Προσθέστε μια κενή διαφάνεια βασισμένη στη νέα διάταξη διαφάνειας.
  5. Αποθηκεύστε την παρουσίαση.

Ο παρακάτω κώδικας C++ δείχνει πώς να προσθέσετε μια διάταξη διαφάνειας σε μια παρουσίαση PowerPoint:

// Δημιουργήστε την κλάση Presentation που αντιπροσωπεύει ένα αρχείο PowerPoint.
auto presentation = MakeObject<Presentation>(u"Sample.pptx");

// Go through the layout slide types to select a layout slide.
auto layoutSlides = presentation->get_Master(0)->get_LayoutSlides();
SharedPtr<ILayoutSlide> layoutSlide;
if (layoutSlides->GetByType(SlideLayoutType::TitleAndObject) != nullptr)
{
    layoutSlide = layoutSlides->GetByType(SlideLayoutType::TitleAndObject);
}
else if (layoutSlides->GetByType(SlideLayoutType::Title) != nullptr)
{
    layoutSlide = layoutSlides->GetByType(SlideLayoutType::Title);
}

if (layoutSlide == nullptr)
{
    // Μία κατάσταση όπου η παρουσίαση δεν περιέχει όλους τους τύπους διατάξεων.
    // Το αρχείο παρουσίασης περιέχει μόνο τύπους διατάξεων Blank και Custom.
    // Ωστόσο, οι διατάξεις διαφάνειας με προσαρμοσμένους τύπους μπορεί να έχουν αναγνωρίσιμα ονόματα,
    // όπως "Title", "Title and Content", κ.λπ., τα οποία μπορούν να χρησιμοποιηθούν για την επιλογή διάταξης διαφάνειας.
    // Μπορείτε επίσης να βασιστείτε σε ένα σύνολο τύπων σχήματος placeholder.
    // Για παράδειγμα, μια διαφάνεια Τίτλου πρέπει να έχει μόνο τον τύπο placeholder Title, κ.τ.λ.
    for (int i = 0; i < layoutSlides->get_Count(); i++)
    {
        auto titleAndObjectLayoutSlide = layoutSlides->idx_get(i);

        if (titleAndObjectLayoutSlide->get_Name().Equals(u"Title and Object"))
        {
            layoutSlide = titleAndObjectLayoutSlide;
            break;
        }
    }

    if (layoutSlide == nullptr)
    {
        for (int i = 0; i < layoutSlides->get_Count(); i++)
        {
            auto titleLayoutSlide = layoutSlides->idx_get(i);

            if (titleLayoutSlide->get_Name() == u"Title")
            {
                layoutSlide = titleLayoutSlide;
                break;
            }
        }

        if (layoutSlide == nullptr)
        {
            layoutSlide = layoutSlides->GetByType(SlideLayoutType::Blank);
            if (layoutSlide == nullptr)
            {
                layoutSlide = layoutSlides->Add(SlideLayoutType::TitleAndObject, u"Title and Object");
            }
        }
    }
}

// Προσθέστε μια κενή διαφάνεια χρησιμοποιώντας τη διατάξη διαφάνειας που προστέθηκε.
presentation->get_Slides()->InsertEmptySlide(0, layoutSlide);

// Αποθηκεύστε την παρουσίαση στο δίσκο.
presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();

Remove Unused Layout Slides

Το Aspose.Slides παρέχει τη μέθοδο RemoveUnusedLayoutSlides από την κλάση Compress για να διαγράψετε ανεπιθύμητες και μη χρησιμοποιούμενες διατάξεις διαφάνειας.

Ο παρακάτω κώδικας C++ δείχνει πώς να αφαιρέσετε μια διάταξη διαφάνειας από μια παρουσίαση PowerPoint:

auto presentation = MakeObject<Presentation>(u"Presentation.pptx");

Compress::RemoveUnusedLayoutSlides(presentation);

presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();

Add Placeholders To Slide Layouts

Το Aspose.Slides παρέχει τη μέθοδο ILayoutSlide.get_PlaceholderManager, η οποία επιτρέπει την προσθήκη νέων placeholders σε μια διάταξη διαφάνειας.

Αυτός ο διαχειριστής περιέχει μεθόδους για τους παρακάτω τύπους placeholders:

PowerPoint Placeholder ILayoutPlaceholderManager Μέθοδος
Περιεχόμενο AddContentPlaceholder(float x, float y, float width, float height)
Περιεχόμενο (Κατακόρυφο) AddVerticalContentPlaceholder(float x, float y, float width, float height)
Κείμενο AddTextPlaceholder(float x, float y, float width, float height)
Κείμενο (Κατακόρυφο) AddVerticalTextPlaceholder(float x, float y, float width, float height)
Εικόνα AddPicturePlaceholder(float x, float y, float width, float height)
Διάγραμμα AddChartPlaceholder(float x, float y, float width, float height)
Πίνακας AddTablePlaceholder(float x, float y, float width, float height)
SmartArt AddSmartArtPlaceholder(float x, float y, float width, float height)
Μέσα AddMediaPlaceholder(float x, float y, float width, float height)
Διαδικτυακή Εικόνα AddOnlineImagePlaceholder(float x, float y, float width, float height)

Ο παρακάτω κώδικας C++ δείχνει πώς να προσθέσετε νέα σχήματα placeholder στη κενή διάταξη διαφάνειας:

auto presentation = MakeObject<Presentation>();

// Λάβετε τη κενή διάταξη διαφάνειας.
auto layout = presentation->get_LayoutSlides()->GetByType(SlideLayoutType::Blank);

// Λάβετε το διαχειριστή placeholder της διάταξης διαφάνειας.
auto placeholderManager = layout->get_PlaceholderManager();

// Προσθέστε διαφορετικά placeholders στη κενή διάταξη διαφάνειας.
placeholderManager->AddContentPlaceholder(20, 20, 310, 270);
placeholderManager->AddVerticalTextPlaceholder(350, 20, 350, 270);
placeholderManager->AddChartPlaceholder(20, 310, 310, 180);
placeholderManager->AddTablePlaceholder(350, 310, 350, 180);

// Προσθέστε μια νέα διαφάνεια με την κενή διάταξη.
auto newSlide = presentation->get_Slides()->AddEmptySlide(layout);

presentation->Save(u"Placeholders.pptx", SaveFormat::Pptx);
presentation->Dispose();

Το αποτέλεσμα:

Οι placeholders στη διάταξη διαφάνειας

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

  1. Δημιουργήστε μια παρουσία της κλάσης Presentation.
  2. Λάβετε μια αναφορά σε διάταξη διαφάνειας με βάση το δείκτη της.
  3. Ορίστε το placeholder υποσέλιδου της διαφάνειας σε ορατό.
  4. Ορίστε το placeholder αριθμού διαφάνειας σε ορατό.
  5. Ορίστε το placeholder ημερομηνίας/ώρας σε ορατό.
  6. Αποθηκεύστε την παρουσίαση.

Ο παρακάτω κώδικας C++ δείχνει πώς να ορίσετε την ορατότητα του υποσέλιδου μιας διαφάνειας και να εκτελέσετε σχετικές εργασίες:

auto presentation = MakeObject<Presentation>(u"Presentation.ppt");
auto headerFooterManager = presentation->get_LayoutSlides()->idx_get(0)->get_HeaderFooterManager();

if (!headerFooterManager->get_IsFooterVisible())
{
    headerFooterManager->SetFooterVisibility(true);
}

if (!headerFooterManager->get_IsSlideNumberVisible())
{
    headerFooterManager->SetSlideNumberVisibility(true);
}

if (!headerFooterManager->get_IsDateTimeVisible())
{
    headerFooterManager->SetDateTimeVisibility(true);
}

headerFooterManager->SetFooterText(u"Footer text");
headerFooterManager->SetDateTimeText(u"Date and time text");

presentation->Save(u"Presentation.ppt", SaveFormat::Pptx);
presentation->Dispose();

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

  1. Δημιουργήστε μια παρουσία της κλάσης Presentation.
  2. Λάβετε μια αναφορά στη κύρια διαφάνεια με βάση το δείκτη της.
  3. Ορίστε τα placeholders υποσέλιδου της κύριας διαφάνειας και όλων των παιδικών διαφάνειων σε ορατό.
  4. Ορίστε τα placeholders αριθμού διαφάνειας της κύριας διαφάνειας και όλων των παιδικών διαφάνειων σε ορατό.
  5. Ορίστε τα placeholders ημερομηνίας/ώρας της κύριας διαφάνειας και όλων των παιδικών διαφάνειων σε ορατό.
  6. Αποθηκεύστε την παρουσίαση.

Ο παρακάτω κώδικας C++ δείχνει αυτή τη λειτουργία:

auto presentation = MakeObject<Presentation>();

auto headerFooterManager = presentation->get_Master(0)->get_HeaderFooterManager();

headerFooterManager->SetFooterAndChildFootersVisibility(true);
headerFooterManager->SetSlideNumberAndChildSlideNumbersVisibility(true);
headerFooterManager->SetDateTimeAndChildDateTimesVisibility(true);

headerFooterManager->SetFooterAndChildFootersText(u"Footer text");
headerFooterManager->SetDateTimeAndChildDateTimesText(u"Date and time text");

presentation->Save(u"Output.pptx", SaveFormat::Pptx);
presentation->Dispose();

FAQ

Ποια είναι η διαφορά μεταξύ κύριας διαφάνειας και διάταξης διαφάνειας;

Μια κύρια διαφάνεια ορίζει το γενικό θέμα και τις προεπιλεγμένες μορφοποιήσεις, ενώ οι διατάξεις διαφάνειας καθορίζουν συγκεκριμένες διατάξεις placeholders για διαφορετικούς τύπους περιεχομένου.

Μπορώ να αντιγράψω μια διάταξη διαφάνειας από μια παρουσίαση σε μια άλλη;

Ναι, μπορείτε να κλωνοποιήσετε μια διάταξη διαφάνειας από τη συλλογή διατάξεων μιας παρουσίασης, προσβάσιμη μέσω της μεθόδου get_LayoutSlides, και να την εισάγετε σε άλλη παρουσίαση χρησιμοποιώντας τη μέθοδο AddClone.

Τι συμβαίνει αν διαγράψω μια διάταξη διαφάνειας που χρησιμοποιείται ακόμα από μια διαφάνεια;

Αν προσπαθήσετε να διαγράψετε μια διάταξη διαφάνειας που είναι ακόμη αναφορά από τουλάχιστον μία διαφάνεια στην παρουσίαση, το Aspose.Slides θα ρίξει ένα PptxEditException. Για να το αποφύγετε, χρησιμοποιήστε τη RemoveUnusedLayoutSlides η οποία αφαιρεί με ασφάλεια μόνο τις διατάξεις διαφάνειας που δεν χρησιμοποιούνται.