Betűtípus-fájlok betöltése bájt tömbből

C++ API megoldás TTF, WOFF, EOT, Type 1 és CFF betűtípusok betöltésére MemoryStream-ből.

 

Az Aspose.Font API megoldás kiterjedt lehetőségeket biztosít a betűtípusokkal való munkához, beleértve a konvertálást, a glif manipulációt, a latin szimbólumok felismerését és még sok mást. Azonban a betűtípus-műveletek első lépése a betűtípus-fájlok betöltése, hogy később felhasználhassuk őket.

Ez a cikk bemutatja, hogyan tölthetünk be betűtípus-fájlokat adatfolyamokból, de a betűtípus betöltésének részletesebb információiért tekintse meg a Hogyan töltsünk be fájlokat? cikket. Ott számos C++ kódpéldát talál, és megértheti a betűtípus betöltéséhez szükséges objektumokat és paramétereket.

Az API számos betűtípus-formátumot támogat, beleértve a TrueType-et (egyetlen betűtípus), TrueType-et (betűtípus-gyűjtemény), a Web Open Font Formátumot, a Web Open Font Formátum 2.0 verzióját, az Embedded OpenType-ot, az Adobe Type 1 betűtípust (pfa, pfb, afm, pfm) és a Compact Font Format-ot. A megadott kódrészletek bemutatják, hogyan töltsünk be egy True Type Font (TTF) fájlt adatfolyamból.

Ahogy a Wikipedia szerint megtudhatjuk, a TTF a TrueType Font rövidítése, amely egy méretezhető számítógépes betűtípusokhoz használt fájlformátum. Eredetileg az Apple Computer fejlesztette ki, de ma már széles körben használják mind a Mac, mind a Windows operációs rendszereken. A TTF fájlok tartalmazzák az egyes betűk különböző méretekben és stílusokban történő megjelenítéséhez szükséges utasításokat, és könnyen átméretezhetők, valamint különböző alkalmazásokban használhatók minőségvesztés nélkül. A TTF betűtípusok elterjedtek a digitális tipográfiában, és gyakran alkalmazzák webdesignban, szövegszerkesztésben és asztali kiadványszerkesztésben.

A betűtípusok betöltéséhez szüksége lesz az Aspose.Font for C++ API-ra, amely egy hatékony, könnyen használható dokumentumkezelő és konvertáló API a C++ platformhoz. Az API beszerzéséhez nyissa meg a NuGet csomagkezelőt, keressen rá az Aspose.Font-ra, és telepítse azt. A következő parancsot is használhatja a Package Manager Console-ban.

Package Manager Console Command


    PM> Install-Package Aspose.Font

TTF betöltése bájt tömbből/MemoryStream-ből C++-al

Ez a kódrészlet C++-ban íródott, és bemutatja, hogyan töltsön be egy TrueType Font (TTF) fájlt az Aspose.Font API segítségével. A kód a következő lépéseket hajtja végre:

  1. Állítsa össze a betűtípus-fájl útvonalát. Itt a DataDir egy előre definiált változó, amely tartalmazza a Montserrat-Regular.ttf betűtípusfájl elérési útját tartalmazó könyvtárat. A Path.Combine metódus kombinálja a két útvonalat, hogy létrehozza a betűtípus-fájl teljes elérési útját.
  2. Töltse be a betűtípus bináris adatát egy bájt tömbbe. A File.ReadAllBytes() metódus beolvassa a betűtípus-fájl tartalmát, és bájt tömbként adja vissza az adatot.
  3. Inicializáljon egy FontDefinition objektumot. A FontType.TTF jelzi, hogy a betűtípus-fájl TrueType Font (.ttf), és az új ByteContentStreamSource (fontBytes) egy ByteContentStreamSource objektumot hoz létre a fontBytes tömbben tárolt betűtípus bináris adat alapján.
  4. Töltse be a betűtípust. A Font.Open() metódus a FontDefinition objektumot veszi paraméterként, és visszaadja a betöltött betűtípust, amely később további manipulációkra használható.

C++ kód betűtípusok betöltéséhez az adatfolyamból

    using Aspose::Font;
    using Aspose::Font::Sources;
    using Aspose::Font::Ttf;
     // Construct the path to the file
    System::String fontPath = System::IO::Path::Combine(get_DataDir(), u"Montserrat-Regular.ttf");

	// Load font binary data into the byte array
    System::ArrayPtr<uint8_t> fontBytes = System::IO::File::ReadAllBytes(fontPath);
    
    // Initialize the FontDefinition object  passing TTF as the FontType value, "ttf" as the fileExtension value, 
    // and ByteContentStreamSource object based on the fontBytes array
    System::SharedPtr<FontDefinition> fontDef = System::MakeObject<FontDefinition (Aspose::Font::FontType::TTF, u"ttf", System::MakeObject<ByteContentStreamSource>(fontBytes));

     // Load the font
    System::SharedPtr<Aspose::Font::Font> font = Aspose::Font::Font::Open(fontDef);