Betűtípusok beágyazása prezentációkba .NET-ben
Bevezetés
A betűtípusok beágyazása a PowerPointba biztosítja, hogy a bemutató megjelenése minden rendszeren változatlan maradjon. Legyen szó kreatív egyedi betűtípusokról vagy szabványosakról, a betűtípusok beágyazása megakadályozza a szöveg és az elrendezés eltorzulását.
Ha egy harmadik féltől származó vagy nem szabványos betűtípust használtál, mert kreatívan dolgoztál, 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ílusok stb. megváltozhatnak vagy zavaró téglalapokká alakulhatnak.
Használd a FontsManager, FontData, és Compress osztályokat a beágyazott betűtípusok kezeléséhez.
Beágyazott betűtípusok lekérése és eltávolítása
A beágyazott betűtípusok egyszerű lekéréséhez vagy eltávolításához a prezentációból használhatod a GetEmbeddedFonts és a RemoveEmbeddedFont metódusokat.
Ez a C# kód megmutatja, hogyan lehet lekérni és eltávolítani a beágyazott betűtípusokat egy prezentációból:
using (Presentation presentation = new Presentation("EmbeddedFonts.pptx"))
{
ISlide slide = presentation.Slides[0];
// Megjeleníti azt a diát, amely szövegkeretet tartalmaz, és beágyazott "FunSized" betűtípust használ
using (IImage image = slide.GetImage(new Size(960, 720)))
{
image.Save("picture1_out.png", ImageFormat.Png);
}
IFontsManager fontsManager = presentation.FontsManager;
IFontData[] embeddedFonts = fontsManager.GetEmbeddedFonts();
// Megkeresi a "Calibri" betűtípust
IFontData funSizedEmbeddedFont = Array.Find(embeddedFonts, delegate (IFontData data)
{
return data.FontName == "Calibri";
});
// Eltávolítja a "Calibri" betűtípust
fontsManager.RemoveEmbeddedFont(funSizedEmbeddedFont);
// Megjeleníti a prezentációt; a "Calibri" betűtípust egy létező betűtípus helyettesíti
using (IImage image = slide.GetImage(new Size(960, 720)))
{
image.Save("picture2_out.png", ImageFormat.Png);
}
// Elmenti a prezentációt a beágyazott "Calibri" betűtípus nélkül a lemezre
presentation.Save("WithoutManageEmbeddedFonts_out.ppt", SaveFormat.Ppt);
}
Beágyazott betűtípusok hozzáadása
Az EmbedFontCharacters enumeráció és a AddEmbeddedFont metódus két túlterhelése segítségével kiválaszthatod a kívánt (beágyazási) szabályt a betűtípusok prezentációba való beágyazásához. Ez a C# kód megmutatja, hogyan kell beágyazni és hozzáadni a betűtípusokat egy prezentációhoz:
// Betölti a prezentációt
Presentation presentation = new Presentation("Fonts.pptx");
IFontData[] allFonts = presentation.FontsManager.GetFonts();
IFontData[] embeddedFonts = presentation.FontsManager.GetEmbeddedFonts();
foreach (IFontData font in allFonts)
{
if (!embeddedFonts.Contains(font))
{
presentation.FontsManager.AddEmbeddedFont(font, EmbedFontCharacters.All);
}
}
// Elmenti a prezentációt a lemezre
presentation.Save("AddEmbeddedFont_out.pptx", SaveFormat.Pptx);
Beágyazott betűtípusok tömörítése
Optimalizáld a fájlméretet a beágyazott betűtípusok tömörítésével a CompressEmbeddedFonts segítségével.
Példa kód a tömörítéshez:
using (Presentation pres = new Presentation("pres.pptx"))
{
Aspose.Slides.LowCode.Compress.CompressEmbeddedFonts(pres);
pres.Save("pres-out.pptx", SaveFormat.Pptx);
}
GYIK
Hogyan tudom megállapítani, hogy egy adott betűtípust a prezentációban a megjelenítés során még mindig helyettesíti a rendszer a beágyazás ellenére?
Ellenőrizd a helyettesítési információ a betűtípuskezelőben és a fallback/helyettesítési szabályok: ha a betűtípus nem elérhető vagy korlátozott, egy helyettesítő lesz használva.
Megéri-e a “rendszer” betűtípusok, például az Arial/Calibri beágyazása?
Általában nem – ezek szinte mindig elérhetők. De egy “vékony” környezetben (Docker, előre telepített betűtípusok nélküli Linux szerver) a rendszerbetűtípusok beágyazása kiküszöbölheti a váratlan helyettesítések kockázatát.