Απόδοση παρουσιάσεων με εναλλακτικές γραμματοσειρές σε С++

Επισκόπηση

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

Μόλις η συλλογή κανόνων εναλλακτικής γραμματοσειράς εκχωρηθεί στο FontsManager της παρουσίασης, οι κανόνες εφαρμόζονται κατά τις λειτουργίες όπως η αποθήκευση, η απόδοση και η μετατροπή της παρουσίασης. Το παράδειγμα δείχνει πώς να χρησιμοποιήσετε τους ρυθμισμένους κανόνες κατά την απόδοση μιας μικρογραφίας διαφάνειας και την αποθήκευσή της ως εικόνα PNG.

Απόδοση διαφάνειας χρησιμοποιώντας κανόνες εναλλακτικής γραμματοσειράς

Το παρακάτω παράδειγμα περιλαμβάνει τα εξής βήματα:

  1. Δημιουργούμε συλλογή κανόνων εναλλακτικής γραμματοσειράς.
  2. Remove() έναν κανόνα εναλλακτικής γραμματοσειράς και AddFallBackFonts() σε έναν άλλο κανόνα.
  3. Περνάμε τη συλλογή κανόνων στη μέθοδο FontsManager::set_FontFallBackRulesCollection().
  4. Με τη μέθοδο Presentation::Save() μπορούμε να αποθηκεύσουμε την παρουσίαση στην ίδια μορφή ή να τη σώσουμε σε άλλη. Αφού η συλλογή κανόνων εναλλακτικής γραμματοσειράς έχει οριστεί στο FontsManager, αυτοί οι κανόνες εφαρμόζονται σε οποιεσδήποτε λειτουργίες της παρουσίασης: αποθήκευση, απόδοση, μετατροπή κ.ά.
// Δημιουργία νέας στιγμής μιας συλλογής κανόνων
auto rulesList = MakeObject<FontFallBackRulesCollection>();

// Δημιουργία ενός αριθμού κανόνων
rulesList->Add(MakeObject<FontFallBackRule>(static_cast<uint32_t>(0x400), static_cast<uint32_t>(0x4FF), u"Times New Roman"));
//rulesList.Add(new FontFallBackRule(...));

for (const auto& fallBackRule : rulesList)
{
	// Προσπάθεια αφαίρεσης της εναλλακτικής γραμματοσειράς "Tahoma" από τους φορτωμένους κανόνες
	fallBackRule->Remove(u"Tahoma");

	// Και ενημέρωση των κανόνων για το καθορισμένο εύρος
	if ((fallBackRule->get_RangeEndIndex() >= static_cast<uint32_t>(0x4000)) && 
		(fallBackRule->get_RangeStartIndex() < static_cast<uint32_t>(0x5000)))
	{
		fallBackRule->AddFallBackFonts(u"Verdana");
	}
}

// Επίσης μπορούμε να αφαιρέσουμε οποιονδήποτε υπάρχον κανόνα από τη λίστα
if (rulesList->get_Count() > 0)
{
	rulesList->Remove(rulesList->idx_get(0));
}

auto pres = System::MakeObject<Presentation>(u"input.pptx");
// Assigning a prepared rules list for using
pres->get_FontsManager()->set_FontFallBackRulesCollection(rulesList);

// Rendering of thumbnail with using of initialized rules collection and saving to PNG
auto image = pres->get_Slide(0)->GetImage(1.f, 1.f);
image->Save(u"Slide_0.png", ImageFormat::Png);
image->Dispose();

pres->Dispose();