PowerPoint betűtípusok testreszabása C++-ban
Áttekintés
Aspose.Slides lehetővé teszi egyedi betűtípusok használatát a bemutatókban az operációs rendszerre való telepítés nélkül. Betűtípusokat tölthet be egyéni mappákból, biztosíthat betűtípusokat egy adott prezentációhoz dokumentumszintű betűtípusforrásokon keresztül, vagy külső betűtípusokat tölthet be közvetlenül bináris adatból.
A betöltött betűtípusok a prezentáció renderelésekor vagy exportálásakor kerülnek felhasználásra, például PDF, képek és egyéb támogatott formátumok esetén. Ez segít az előállítás konzisztensnek tartásában különböző környezetekben. A cikk azt is elmagyarázza, hogyan ellenőrizheti az Aspose.Slides által használt betűtípus-mappákat, és hogyan törölheti a betűtípus-gyorsítót a külső betűtípusok használata után.
A saját betűtípusok regisztrálása a rendereléshez különbözik a betűtípusok PPTX fájlba ágyazásától. Ha a betűtípust magában a prezentációban kell tárolni, használja a betűtípus-átágyazási funkciókat kifejezetten.
Egy prezentáció témája különböző betűcsaládokra hivatkozhat az egyes írásrendszerekhez. Ezek a leképezések csak a betűtípusneveket tárolják, de nem telepítik vagy töltik be a betűtípusfájlokat. Tekintse meg a Script-Specific Theme Fonts oldalt a leképezések kezeléséhez, és használja az alábbi betöltési lehetőségeket a hivatkozott betűtípusok rendelkezésre állásához a konzisztens renderelés érdekében.
Megjegyzés
Aspose Slides lehetővé teszi ezen betűtípusok betöltését a FontsLoader::LoadExternalFonts használatával:
Egyedi betűtípusok betöltése
Aspose.Slides lehetővé teszi, hogy betöltse a prezentációban használt betűtípusokat a rendszerre való telepítés nélkül. Ez befolyásolja az export kimenetet – például PDF, képek és egyéb támogatott formátumok – így a keletkezett dokumentumok konzisztensnek mutatnak különböző környezetekben. A betűtípusok egyéni könyvtárakból töltődnek be.
- Adjon meg egy vagy több mappát, amely a betűtípusfájlokat tartalmazza.
- Hívja meg a statikus FontsLoader::loadExternalFonts metódust a betűtípusok betöltéséhez ezekből a mappákból.
- Töltse be és renderelje/exportálja a prezentációt.
- Hívja meg a FontsLoader.clearCache metódust a betűtípus-gyorsítótár törléséhez.
A következő kódrészlet bemutatja a betűtípus betöltési folyamatát:
#include <DOM/Fonts/FontsLoader.h>
#include <DOM/Presentation.h>
#include <Export/SaveFormat.h>
#include <system/array.h>
#include <system/string.h>
using namespace Aspose::Slides;
using namespace Aspose::Slides::Export;
using namespace System;
// Határozza meg az egyedi betűtípus fájlokat tartalmazó mappákat.
String externalFontFolder = u"assets/fonts";
auto fontFolders = MakeObject<Array<String>>(1, externalFontFolder );
// Töltsön be egyedi betűtípusokat a megadott mappákból.
FontsLoader::LoadExternalFonts(fontFolders);
auto presentation = MakeObject<Presentation>(u"sample.pptx");
// Renderelje/exportálja a prezentációt (például PDF‑be, képekbe vagy egyéb formátumokba) a betöltött betűtípusok használatával.
presentation->Save(u"output.pdf", SaveFormat::Pdf);
presentation->Dispose();
// Törölje a betűtípus-gyorsítót a munka befejezése után.
FontsLoader::ClearCache();
Megjegyzés
FontsLoader::loadExternalFonts további mappákat ad a betűtípus-keresési útvonalakhoz, de nem módosítja a betűtípus inicializálási sorrendjét. A betűtípusok a következő sorrendben inicializálódnak:
- Az operációs rendszer alapértelmezett betűtípus útvonala.
- A FontsLoader által betöltött útvonalak.
Egyéni betűtípus-mappák lekérése
Aspose.Slides biztosítja a FontsLoader::GetFontFolders() metódust, amely lehetővé teszi a betűtípus-mappák megtalálását. Ez a metódus visszaadja a LoadExternalFonts metóduson keresztül hozzáadott mappákat és a rendszer betűtípus-mappáit.
Ez a C++ kód bemutatja, hogyan használja a FontsLoader::GetFontFolders() metódust:
#include <DOM/Fonts/FontsLoader.h>
using namespace Aspose::Slides;
// Ez a sor kiírja azokat a mappákat, amelyekben a betűtípus fájlok keresése történik.
// Ezek a LoadExternalFonts metóduson keresztül hozzáadott mappák és a rendszer betűtípus mappái.
auto fontFolders = FontsLoader::GetFontFolders();
Egyéni betűtípusok megadása a prezentációhoz
Aspose.Slides biztosítja a LoadOptions::set_DocumentLevelFontSources tulajdonságot, amely lehetővé teszi külső betűtípusok megadását, melyek a prezentációval együtt lesznek használva.
Ez a C++ kód bemutatja, hogyan használja a LoadOptions::set_DocumentLevelFontSources tulajdonságot:
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <IFontSources.h>
#include <system/io/file.h>
#include <system/string.h>
using namespace Aspose::Slides;
using namespace System;
using namespace System::IO;
auto memoryFont1 = File::ReadAllBytes(u"customfonts\\CustomFont1.ttf");
auto memoryFont2 = File::ReadAllBytes(u"customfonts\\CustomFont2.ttf");
auto loadOptions = System::MakeObject<LoadOptions>();
loadOptions->get_DocumentLevelFontSources()->set_FontFolders(System::MakeArray<String>({u"assets\\fonts", u"global\\fonts"}));
loadOptions->get_DocumentLevelFontSources()->set_MemoryFonts(System::MakeArray<ArrayPtr<uint8_t>>({memoryFont1, memoryFont2}));
{
auto presentation = System::MakeObject<Presentation>(u"MyPresentation.pptx", loadOptions);
//munka a prezentációval
//CustomFont1, CustomFont2, valamint az assets\fonts és a global\fonts mappákban és azok almappáiban található betűtípusok elérhetők a prezentáció számára
}
Betűtípusok külső kezelése
Aspose.Slides biztosítja a FontsLoader::LoadExternalFont metódust, amely lehetővé teszi a külső betűtípusok betöltését egy bájt tömbbe.
Ez a C++ kód bemutatja a bájt tömb betűtípus betöltési folyamatát:
#include <DOM/LoadOptions.h>
#include <DOM/Presentation.h>
#include <IFontSources.h>
#include <system/io/file.h>
#include <system/string.h>
using namespace Aspose::Slides;
using namespace System;
using namespace System::IO;
// A dokumentumok könyvtárának elérési útja
const String outPath = u"../out/SpecifyFontsUsedWithPresentation.pptx";
const String templatePath = u"../templates/AccessSlides.pptx";
ArrayPtr<String> fontsLocation = MakeArray<System::String>({ u"assets\\fonts", u"global\\fonts" });// ;
ArrayPtr<ArrayPtr<uint8_t>> memoryfontsLocation = MakeArray < ArrayPtr<uint8_t>>({ File::ReadAllBytes(u"../templates/CustomFont1.ttf"), File::ReadAllBytes(u"../templates/CustomFont2.ttf") });
SharedPtr < Aspose::Slides::LoadOptions > loadOptions = MakeObject <Aspose::Slides::LoadOptions>();
loadOptions->get_DocumentLevelFontSources()->set_FontFolders(fontsLocation);
loadOptions->get_DocumentLevelFontSources()->set_MemoryFonts(memoryfontsLocation);
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath, loadOptions);
GYIK
Az egyedi betűtípusok érintik az összes formátumba történő exportálást (PDF, PNG, SVG, HTML)?
Igen. A csatlakoztatott betűtípusokat a renderelő az összes export formátumban használja.
Az egyedi betűtípusok automatikusan beágyazódnak a keletkezett PPTX-be?
Nem. A betűtípus rendereléshez történő regisztrálása nem ugyanaz, mint a PPTX-be történő beágyazás. Ha a betűtípust a prezentáció fájljában kell tárolni, akkor az explicit embedding features segítségét kell igénybe venni.
Szabályozhatom a helyettesítő viselkedést, ha egy egyedi betűtípus bizonyos glifekkel nem rendelkezik?
Igen. Konfigurálja a font substitution, a replacement rules és a fallback sets beállításait, hogy pontosan meghatározza, melyik betűtípust használja a kért glif hiányában.
Használhatok betűtípusokat Linux/Docker konténerekben anélkül, hogy a rendszer szintjén telepíteném őket?
Igen. Mutasson a saját betűtípus-mappáira, vagy töltse be a betűtípusokat bájt tömbökből. Ez eltávolítja a rendszer betűtípus könyvtárakra való függőséget a konténer képből.
Mi a helyzet a licencelésével — beágyazhatok bármilyen egyedi betűtípust korlátozás nélkül?
Ön felelős a betűtípus-licenc megfeleléséért. A feltételek változóak; egyes licencek tiltják a beágyazást vagy a kereskedelmi felhasználást. Mindig ellenőrizze a betűtípus EULA‑ját, mielőtt a kimenetet terjesztené.