Betűtípusok beágyazása prezentációkba Androidon
Bevezetés
Beágyazott betűtípusok a PowerPointban hasznosak, ha azt szeretné, hogy a bemutatója minden rendszeren vagy eszközön helyesen jelenjen meg. Ha harmadik féltől származó vagy nem szabványos betűtípust használt, mert kreatív volt a munkájában, akkor még több oka van a betűtípus beágyazására. Ellenkező esetben (beágyazott betűtípusok nélkül) a diákon lévő szövegek vagy számok, az elrendezés, a stílus stb. megváltozhatnak vagy zavaró téglalapokká alakulhatnak.
A FontsManager osztály, a FontData osztály, a Compress osztály és azok interfészei tartalmazzák a legtöbb tulajdonságot és metódust, amelyekre a PowerPoint‑bemutatók beágyazott betűtípusaival való munka során szüksége van.
Beágyazott betűtípusok lekérése és eltávolítása
Az Aspose.Slides a getEmbeddedFonts metódust (a FontsManager osztály által biztosítva) kínálja, amely lehetővé teszi a bemutatóban beágyazott betűtípusok lekérését (vagy megtudását). A betűtípusok eltávolításához a removeEmbeddedFont metódust (ugyanazon osztály által) használják.
Ez a Java kód bemutatja, hogyan lehet beágyazott betűtípusokat lekérni és eltávolítani egy bemutatóból:
// Egy Presentation objektumot hoz létre, amely egy prezentációs fájlt képvisel
Presentation pres = new Presentation("EmbeddedFonts.pptx");
try {
// Renderel egy diát, amely szövegkeretet tartalmaz, ami beágyazott "FunSized" betűtípust használ
IImage slideImage = pres.getSlides().get_Item(0).getImage(new Dimension(960, 720));
//A képet JPEG formátumban menti le a lemezre
try {
slideImage.save("picture1_out.jpg", ImageFormat.Jpeg);
} finally {
if (slideImage != null) slideImage.dispose();
}
IFontsManager fontsManager = pres.getFontsManager();
// Lekéri az összes beágyazott betűtípust
IFontData[] embeddedFonts = fontsManager.getEmbeddedFonts();
// Megkeresi a "Calibri" betűtípust
IFontData calibriEmbeddedFont = null;
for (int i = 0; i < embeddedFonts.length; i++) {
System.out.println(""+ embeddedFonts[i].getFontName());
if ("Calibri".equals(embeddedFonts[i].getFontName())) {
calibriEmbeddedFont = embeddedFonts[i];
break;
}
}
// Eltávolítja a "Calibri" betűtípust
fontsManager.removeEmbeddedFont(calibriEmbeddedFont);
// Rendereli a prezentációt; a "Calibri" betűtípus helyettesítve van egy meglévővel
slideImage = pres.getSlides().get_Item(0).getImage(new Dimension(960, 720));
//A képet JPEG formátumban menti le a lemezre
try {
slideImage.save("picture2_out.jpg", ImageFormat.Jpeg);
} finally {
if (slideImage != null) slideImage.dispose();
}
// Mentse a prezentációt a beágyazott "Calibri" betűtípus nélkül a lemezre
pres.save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
} finally {
if (pres != null) pres.dispose();
}
Beágyazott betűtípusok hozzáadása
Az EmbedFontCharacters felsorolt típus és a addEmbeddedFont metódus két túlterhelése segítségével kiválaszthatja a kívánt (beágyazási) szabályt a betűtípusok bemutatóba való beágyazásához. Ez a Java kód bemutatja, hogyan lehet betűtípusokat beágyazni és hozzáadni egy bemutatóhoz:
// Betölti a prezentációt
Presentation pres = new Presentation("Fonts.pptx");
try {
IFontData[] allFonts = pres.getFontsManager().getFonts();
IFontData[] embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
for (IFontData font : allFonts)
{
boolean embeddedFontsContainsFont = false;
for (int i = 0; i < embeddedFonts.length; i++)
{
if (embeddedFonts[i].equals(font))
{
embeddedFontsContainsFont = true;
break;
}
}
if (!embeddedFontsContainsFont)
{
pres.getFontsManager().addEmbeddedFont(font, EmbedFontCharacters.All);
embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
}
}
// Mentse a prezentációt a lemezre
pres.save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Beágyazott betűtípusok tömörítése
Annak érdekében, hogy a bemutatóban beágyazott betűtípusokat tömöríthesse és csökkentse a fájlméretét, az Aspose.Slides a compressEmbeddedFonts metódust (a Compress osztály által) biztosítja.
Ez a Java kód bemutatja, hogyan lehet beágyazott PowerPoint betűtípusokat tömöríteni:
Presentation pres = new Presentation("pres.pptx");
try {
Compress.compressEmbeddedFonts(pres);
pres.save("pres-out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
GYIK
Hogyan tudom megállapítani, hogy a bemutató egy adott betűtípusa a renderelés során továbbra is helyettesítésre kerül a beágyazás ellenére?
Ellenőrizze a helyettesítési információkat a betűtípus‑kezelőben, valamint a visszaesési/helyettesítési szabályokat: ha a betűtípus nem érhető el vagy korlátozott, egy helyettesítő kerül felhasználásra.
Érdemes „rendszer” betűtípusokat, például az Arial‑t vagy a Calibri‑t beágyazni?
Általában nem – ezek szinte mindig rendelkezésre állnak. Azonban „sovány” környezetekben (Docker, előre telepített betűtípusok nélküli Linux‑szerver) a rendszer‑betűtípusok beágyazása kiküszöbölheti a váratlan helyettesítések kockázatát.