Osadzanie czcionek w prezentacjach przy użyciu JavaScript
Wprowadzenie
Czcionki osadzone w PowerPoint są przydatne, gdy chcesz, aby Twoja prezentacja wyświetlała się prawidłowo na każdym systemie lub urządzeniu. Jeśli użyłeś czcionki zewnętrznej lub niestandardowej, bo byłeś kreatywny w swojej pracy, masz jeszcze więcej powodów, aby osadzić tę czcionkę. W przeciwnym razie (bez osadzonych czcionek) teksty lub liczby na slajdach, układ, stylizacja itp. mogą się zmienić lub zamienić w nieczytelne prostokąty.
Klasa FontsManager, klasa FontData oraz klasa Compress i ich klasy zawierają większość właściwości i metod potrzebnych do pracy z osadzonymi czcionkami w prezentacjach PowerPoint.
Pobieranie lub usuwanie osadzonych czcionek z prezentacji
Aspose.Slides udostępnia metodę getEmbeddedFonts (udostępnianą przez klasę FontsManager), aby umożliwić pobranie (lub sprawdzenie) czcionek osadzonych w prezentacji. Aby usunąć czcionki, używana jest metoda removeEmbeddedFont (udostępniana przez tę samą klasę).
Ten kod JavaScript pokazuje, jak pobrać i usunąć osadzone czcionki z prezentacji:
// Tworzy obiekt Presentation, który reprezentuje plik prezentacji
var pres = new aspose.slides.Presentation("EmbeddedFonts.pptx");
try {
// Renderuje slajd zawierający ramkę tekstową, która używa osadzonej "FunSized"
var slideImage = pres.getSlides().get_Item(0).getImage(java.newInstanceSync("java.awt.Dimension", 960, 720));
// Zapisuje obraz na dysku w formacie JPEG
try {
slideImage.save("picture1_out.jpg", aspose.slides.ImageFormat.Jpeg);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
var fontsManager = pres.getFontsManager();
// Pobiera wszystkie osadzone czcionki
var embeddedFonts = fontsManager.getEmbeddedFonts();
// Znajduje czcionkę "Calibri"
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;
}
}
// Usuwa czcionkę "Calibri"
fontsManager.removeEmbeddedFont(calibriEmbeddedFont);
// Renderuje prezentację; czcionka "Calibri" zostaje zastąpiona istniejącą
slideImage = pres.getSlides().get_Item(0).getImage(java.newInstanceSync("java.awt.Dimension", 960, 720));
// Zapisuje obraz na dysku w formacie JPEG
try {
slideImage.save("picture2_out.jpg", aspose.slides.ImageFormat.Jpeg);
} finally {
if (slideImage != null) {
slideImage.dispose();
}
}
// Zapisuje prezentację bez osadzonej czcionki "Calibri" na dysku
pres.save("WithoutManageEmbeddedFonts_out.ppt", aspose.slides.SaveFormat.Ppt);
} finally {
if (pres != null) {
pres.dispose();
}
}
Dodawanie osadzonych czcionek do prezentacji
Korzystając z wyliczenia EmbedFontCharacters oraz dwóch przeciążeń metody addEmbeddedFont, możesz wybrać preferowaną zasadę (osadzania), aby osadzić czcionki w prezentacji. Ten kod JavaScript pokazuje, jak osadzić i dodać czcionki do prezentacji:
// Wczytuje prezentację
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();
}
});
// Zapisuje prezentację na dysk
pres.save("AddEmbeddedFont_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (pres != null) {
pres.dispose();
}
}
Kompresja osadzonych czcionek
Aby umożliwić kompresję czcionek osadzonych w prezentacji i zmniejszyć jej rozmiar, Aspose.Slides udostępnia metodę compressEmbeddedFonts (udostępnianą przez klasę Compress).
Ten kod JavaScript pokazuje, jak skompresować osadzone czcionki PowerPoint:
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();
}
}
FAQ
Jak mogę sprawdzić, czy konkretna czcionka w prezentacji będzie nadal podstawiana podczas renderowania pomimo osadzenia?
Sprawdź informacje o podstawianiu w menedżerze czcionek oraz zasady zastępowania/podstawiania: jeśli czcionka jest niedostępna lub ograniczona, zostanie użyta czcionka zastępcza.
Czy warto osadzać czcionki systemowe, takie jak Arial/Calibri?
Zazwyczaj nie — są one prawie zawsze dostępne. Jednak w celu pełnej przenośności w „cienkich” środowiskach (Docker, serwer Linux bez wstępnie zainstalowanych czcionek) osadzanie czcionek systemowych może wyeliminować ryzyko nieoczekiwanych podstawień.