Betűtípusok beágyazása prezentációkba JavaScript használatával

Bevezetés

A PowerPoint-be beágyazott betűtípusok hasznosak, ha azt szeretné, hogy a prezentációja minden rendszerben vagy eszközön helyesen jelenjen meg. Ha egy külső 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 osztályai a legtöbb tulajdonságot és metódust tartalmazzák, amelyekre a PowerPoint‑prezentációkban beágyazott betűtípusok kezeléséhez szüksége van.

Beágyazott betűtípusok lekérése vagy eltávolítása a prezentációból

Az Aspose.Slides a getEmbeddedFonts metódust (amelyet a FontsManager osztály biztosít) kínálja, hogy lekérdezhesse (vagy megtudja), mely betűtípusok vannak beágyazva egy prezentációban. A betűtípusok eltávolításához a removeEmbeddedFont metódus (ugyanazon osztályból) használható.

Ez a JavaScript‑kód megmutatja, hogyan kérhetők le és távolíthatók el a beágyazott betűtípusok egy prezentációból:

// Egy Presentation objektumot hoz létre, amely egy prezentációs fájlt képvisel
var pres = new aspose.slides.Presentation("EmbeddedFonts.pptx");
try {
    // Megjelenít egy diát, amely szövegdobozban tartalmazza a beágyazott "FunSized" betűtípust
    var slideImage = pres.getSlides().get_Item(0).getImage(java.newInstanceSync("java.awt.Dimension", 960, 720));
    // Mentse a képet a lemezen JPEG formátumban
    try {
        slideImage.save("picture1_out.jpg", aspose.slides.ImageFormat.Jpeg);
    } finally {
        if (slideImage != null) {
            slideImage.dispose();
        }
    }
    var fontsManager = pres.getFontsManager();
    // Lekéri az összes beágyazott betűtípust
    var embeddedFonts = fontsManager.getEmbeddedFonts();
    // Megkeresi a "Calibri" betűtípust
    var calibriEmbeddedFont = null;
    for (var i = 0; i < embeddedFonts.length; i++) {
        console.log("" + embeddedFonts[i].getFontName());
        if ("Calibri" == embeddedFonts[i].getFontName()) {
            calibriEmbeddedFont = embeddedFonts[i];
            break;
        }
    }
    // Eltávolítja a "Calibri" betűtípust
    fontsManager.removeEmbeddedFont(calibriEmbeddedFont);
    // Megjeleníti a prezentációt; "Calibri" betűtípus egy meglévő betűtípussal lesz helyettesítve
    slideImage = pres.getSlides().get_Item(0).getImage(java.newInstanceSync("java.awt.Dimension", 960, 720));
    // Mentse a képet a lemezen JPEG formátumban
    try {
        slideImage.save("picture2_out.jpg", aspose.slides.ImageFormat.Jpeg);
    } finally {
        if (slideImage != null) {
            slideImage.dispose();
        }
    }
    // Elmenti a prezentációt beágyazott "Calibri" betűtípus nélkül a lemezen
    pres.save("WithoutManageEmbeddedFonts_out.ppt", aspose.slides.SaveFormat.Ppt);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Beágyazott betűtípusok hozzáadása a prezentációhoz

Az EmbedFontCharacters enumeráció és a addEmbeddedFont metódus két túlterhelése használatával kiválaszthatja a kívánt (beágyazási) szabályt a betűtípusok prezentációba történő beágyazásához. Ez a JavaScript‑kód megmutatja, hogyan ágyazhatók be és adhatók hozzá betűtípusok egy prezentációhoz:

// Betölti a prezentációt
var pres = new aspose.slides.Presentation("Fonts.pptx");
try {
    var allFonts = pres.getFontsManager().getFonts();
    var embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
    allFonts.forEach(font => {
        var embeddedFontsContainsFont = false;
        for (var i = 0; i < embeddedFonts.length; i++) {
            if (embeddedFonts[i].equals(font)) {
                embeddedFontsContainsFont = true;
                break;
            }
        }
        if (!embeddedFontsContainsFont) {
            pres.getFontsManager().addEmbeddedFont(font, aspose.slides.EmbedFontCharacters.All);
            embeddedFonts = pres.getFontsManager().getEmbeddedFonts();
        }
    });
    // Elmenti a prezentációt a lemezen
    pres.save("AddEmbeddedFont_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

Beágyazott betűtípusok tömörítése

Az Aspose.Slides a compressEmbeddedFonts metódust (amelyet a Compress osztály biztosít) kínálja, hogy lehetővé tegye a prezentációba beágyazott betűtípusok tömörítését és ezzel a fájlméret csökkentését.

Ez a JavaScript‑kód megmutatja, hogyan tömöríthetőek a beágyazott PowerPoint‑betűtípusok:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    aspose.slides.Compress.compressEmbeddedFonts(pres);
    pres.save("pres-out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

GYIK

Hogyan ellenőrizhetem, hogy egy adott betűtípus a prezentációban a beágyazás ellenére is helyettesítésre kerül-e a renderelés során?

Ellenőrizze a substitution information pontot a betűtípus‑kezelőben és a fallback/substitution rules szakaszt: ha a betűtípus nem érhető el vagy korlátozott, akkor tartalék betűtípust fognak használni.

Érdemes beágyazni a „rendszer” betűtípusokat, mint például az Arial/Calibri?

Általában nem – szinte mindig elérhetők. De „sovány” környezetekben (Docker, egy 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 nem várt helyettesítések kockázatát.