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:
- Á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.
- 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.
- 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.
- 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);