Gestire i segnaposti della presentazione in C++
Panoramica
Aspose.Slides consente di gestire i segnaposti delle presentazioni in modo programmatico. Questo articolo spiega come trovare i segnaposti nelle diapositive e modificare il loro testo, impostare testi di suggerimento personalizzati per i layout dei segnaposti e regolare la trasparenza di un’immagine utilizzata come sfondo del segnaposto. Include anche una breve FAQ che chiarisce la differenza tra segnaposti di base e forme locali, spiega come le modifiche ai segnaposti possono essere applicate tramite layout o master e indica la gestione dei segnaposti di intestazione e piè di pagina.
Modifica del testo in un segnaposto
Utilizzando Aspose.Slides for C++, è possibile trovare e modificare i segnaposti nelle diapositive delle presentazioni. Aspose.Slides consente di apportare modifiche al testo di un segnaposto.
Prerequisito: è necessaria una presentazione che contenga un segnaposto. È possibile creare tale presentazione con l’applicazione standard Microsoft PowerPoint.
Ecco come utilizzare Aspose.Slides per sostituire il testo nel segnaposto di quella presentazione:
- Istanziare la classe
Presentatione passare la presentazione come argomento. - Ottenere un riferimento alla diapositiva tramite il suo indice.
- Scorrere le forme per trovare il segnaposto.
- Eseguire il cast della forma segnaposto a un
AutoShapee modificare il testo usando ilTextFrameassociato alAutoShape. - Salvare la presentazione modificata.
Questo codice C++ mostra come modificare il testo in un segnaposto:
// Il percorso della directory dei documenti.
const String outPath = u"../out/ReplacingText_out.pptx";
const String templatePath = u"../templates/DefaultFonts.pptx";
// Carica la presentazione desiderata
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// Accede alla prima diapositiva
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// Accede al primo e al secondo segnaposto nella diapositiva e lo converte in un AutoShape
SharedPtr<IShape> shape = slide->get_Shapes()->idx_get(0);
SharedPtr<AutoShape> ashp = ExplicitCast<Aspose::Slides::AutoShape>(shape);
SharedPtr<ITextFrame> textframe = ashp->get_TextFrame();
textframe->set_Text(u"This is Placeholder");
// Salva la presentazione su disco
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
Imposta il testo di suggerimento in un segnaposto
I layout standard e predefiniti contengono testi di suggerimento per i segnaposti come Fare clic per aggiungere un titolo o Fare clic per aggiungere un sottotitolo. Con Aspose.Slides è possibile inserire i propri testi di suggerimento preferiti nei layout dei segnaposti.
Questo codice C++ mostra come impostare il testo di suggerimento in un segnaposto:
const System::String templatePath = u"../templates/Presentation2.pptx";
auto pres = System::MakeObject<Presentation>(templatePath);
auto slide = pres->get_Slides()->idx_get(0);
for (auto& shape : slide->get_Shapes())
{
if (shape->get_Placeholder() != NULL)
{
System::String text = u"";
if (shape->get_Placeholder()->get_Type() == PlaceholderType::CenteredTitle) // Quando non c'è testo, PowerPoint visualizza "Click to add title".
{
text = u"Click to add title";
}
else if (shape->get_Placeholder()->get_Type() == PlaceholderType::Subtitle) // Fa la stessa cosa per il sottotitolo.
{
text = u"Click to add subtitle";
}
System::Console::WriteLine(u"Placeholder : {0}", text);
}
}
pres->Save(u"../out/Placeholders_PromptText.pptx", Aspose::Slides::Export::SaveFormat::Pptx);
Imposta la trasparenza dell’immagine del segnaposto
Aspose.Slides consente di impostare la trasparenza dell’immagine di sfondo in un segnaposto di testo. Regolando la trasparenza dell’immagine in tale cornice, è possibile far risaltare il testo o l’immagine (a seconda dei colori del testo e dell’immagine).
Questo codice C++ mostra come impostare la trasparenza per lo sfondo di un’immagine (all’interno di una forma):
auto presentation = System::MakeObject<Presentation>();
auto autoShape = presentation->get_Slides()->idx_get(0)->get_Shapes()->AddAutoShape(Aspose::Slides::ShapeType::Rectangle, 10.0f, 10.0f, 100.0f, 100.0f);
auto fillFormat = autoShape->get_FillFormat();
fillFormat->set_FillType(Aspose::Slides::FillType::Picture);
fillFormat->get_PictureFillFormat()->get_Picture()->set_Image(presentation->get_Images()->AddImage(System::IO::File::ReadAllBytes(u"image.png")));
auto pictureFillFormat = fillFormat->get_PictureFillFormat();
pictureFillFormat->set_PictureFillMode(Aspose::Slides::PictureFillMode::Stretch);
pictureFillFormat->get_Picture()->get_ImageTransform()->AddAlphaModulateFixedEffect(75.0f);
FAQ
Che cos’è un segnaposto di base e in che modo differisce da una forma locale su una diapositiva?
Un segnaposto di base è la forma originale su un layout o master da cui la forma della diapositiva eredita - tipo, posizione e parte della formattazione provengono da esso. Una forma locale è indipendente; se non esiste un segnaposto di base, l’ereditarietà non si applica.
Come posso aggiornare tutti i titoli o le didascalie in una presentazione senza iterare su ogni diapositiva?
Modificare il segnaposto corrispondente sul layout o sul master. Le diapositive basate su quei layout/master erediteranno automaticamente la modifica.
Come gestisco i segnaposti standard di intestazione/piè di pagina - data e ora, numero diapositiva e testo del piè di pagina?
Utilizzare i gestori HeaderFooter nell’ambito appropriato (diapositive normali, layout, master, note/handout) per attivare o disattivare questi segnaposti e impostarne il contenuto.