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.

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.

  1. Adjon meg egy vagy több mappát, amely a betűtípusfájlokat tartalmazza.
  2. Hívja meg a statikus FontsLoader::loadExternalFonts metódust a betűtípusok betöltéséhez ezekből a mappákból.
  3. Töltse be és renderelje/exportálja a prezentációt.
  4. 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();

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é.