Dostosuj czcionki PowerPoint w Javie
Przegląd
Aspose.Slides pozwala używać własnych czcionek w prezentacjach bez instalowania ich w systemie operacyjnym. Możesz ładować czcionki z własnych folderów, dostarczać czcionki dla konkretnej prezentacji poprzez źródła czcionek na poziomie dokumentu lub ładować zewnętrzne czcionki bezpośrednio z danych binarnych.
Załadowane czcionki są używane podczas renderowania lub eksportu prezentacji, na przykład do PDF, obrazów i innych obsługiwanych formatów. Pomaga to zachować spójność wyjściową prezentacji w różnych środowiskach. Artykuł wyjaśnia również, jak sprawdzić foldery czcionek używane przez Aspose.Slides i jak wyczyścić pamięć podręczną czcionek po pracy ze zewnętrznymi czcionkami.
Rejestrowanie własnych czcionek do renderowania jest oddzielne od osadzania czcionek w pliku PPTX. Jeśli czcionka ma być przechowywana wewnątrz samej prezentacji, użyj funkcji osadzania czcionek explicite.
Aspose Slides pozwala ładować te czcionki przy użyciu metody loadExternalFonts:
Ładowanie własnych czcionek
Aspose.Slides pozwala ładować czcionki używane w prezentacji bez ich instalacji w systemie. Ma to wpływ na wynik eksportu — takiego jak PDF, obrazy i inne obsługiwane formaty — więc powstałe dokumenty wyglądają spójnie w różnych środowiskach. Czcionki są ładowane z własnych katalogów.
- Określ jeden lub więcej folderów zawierających pliki czcionek.
- Wywołaj statyczną metodę FontsLoader.loadExternalFonts aby załadować czcionki z tych folderów.
- Załaduj i renderuj/wyeksportuj prezentację.
- Wywołaj FontsLoader.clearCache aby wyczyścić pamięć podręczną czcionek.
Przykład kodu poniżej demonstruje proces ładowania czcionek:
// Zdefiniuj foldery zawierające własne pliki czcionek.
String[] fontFolders = new String[] { externalFontFolder1, externalFontFolder2 };
// Wczytaj własne czcionki z określonych folderów.
FontsLoader.loadExternalFonts(fontFolders);
Presentation presentation = null;
try {
presentation = new Presentation("sample.pptx");
// Renderuj/wyeksportuj prezentację (np. do PDF, obrazów lub innych formatów) używając załadowanych czcionek.
presentation.save("output.pdf", SaveFormat.Pdf);
} finally {
if (presentation != null) presentation.dispose();
// Wyczyść pamięć podręczną czcionek po zakończeniu pracy.
FontsLoader.clearCache();
}
Note
FontsLoader.loadExternalFonts dodaje dodatkowe foldery do ścieżek wyszukiwania czcionek, ale nie zmienia kolejności inicjalizacji czcionek. Czcionki są inicjalizowane w następującej kolejności:
- Domyślna ścieżka czcionek systemu operacyjnego.
- Ścieżki załadowane poprzez FontsLoader.
Uzyskiwanie własnych folderów czcionek
Aspose.Slides udostępnia metodę getFontFolders umożliwiającą znalezienie folderów czcionek. Metoda ta zwraca foldery dodane przez metodę LoadExternalFonts oraz systemowe foldery czcionek.
Poniższy kod Java pokazuje, jak używać getFontFolders:
// Ten wiersz wyświetla foldery, w których wyszukiwane są pliki czcionek.
// Są to foldery dodane przez metodę LoadExternalFonts oraz systemowe foldery czcionek.
String[] fontFolders = FontsLoader.getFontFolders();
Określanie własnych czcionek używanych w prezentacji
Aspose.Slides udostępnia właściwość setDocumentLevelFontSources pozwalającą określić zewnętrzne czcionki, które będą używane w prezentacji.
Poniższy kod Java pokazuje, jak używać właściwości setDocumentLevelFontSources:
byte[] memoryFont1 = Files.readAllBytes("customfonts/CustomFont1.ttf");
byte[] memoryFont2 = Files.readAllBytes("customfonts/CustomFont2.ttf");
LoadOptions loadOptions = new LoadOptions();
loadOptions.getDocumentLevelFontSources().setFontFolders(new String[] { "assets/fonts", "global/fonts" });
loadOptions.getDocumentLevelFontSources().setMemoryFonts(new byte[][] { memoryFont1, memoryFont2 });
Presentation pres = new Presentation("MyPresentation.pptx", loadOptions);
try {
// Pracuj z prezentacją
// CustomFont1, CustomFont2 oraz czcionki z folderów assets\fonts i global\fonts oraz ich podfolderów są dostępne dla prezentacji
} finally {
if (pres != null) pres.dispose();
}
Zarządzanie czcionkami zewnętrznie
Aspose.Slides udostępnia metodę loadExternalFont(byte[] data) pozwalającą ładować zewnętrzne czcionki z danych binarnych.
Poniższy kod Java demonstruje proces ładowania czcionki z tablicy bajtów:
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALN.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNBI.TTF")));
FontsLoader.loadExternalFont(Files.readAllBytes(Paths.get("ARIALNI.TTF")));
try
{
Presentation pres = new Presentation("");
try {
// zewnętrzna czcionka wczytana podczas życia prezentacji
} finally {
}
}
finally
{
FontsLoader.clearCache();
}
FAQ
Czy własne czcionki wpływają na eksport do wszystkich formatów (PDF, PNG, SVG, HTML)?
Tak. Połączone czcionki są używane przez renderer we wszystkich formatach eksportu.
Czy własne czcionki są automatycznie osadzane w powstałym pliku PPTX?
Nie. Rejestracja czcionki do renderowania nie jest tym samym co jej osadzenie w pliku PPTX. Jeśli czcionka ma być zawarta w pliku prezentacji, należy użyć explicite funkcji embedding features.
Czy mogę kontrolować zachowanie alternatywne, gdy własna czcionka nie ma niektórych glifów?
Tak. Skonfiguruj font substitution, replacement rules oraz fallback sets, aby dokładnie określić, która czcionka jest używana, gdy żądany glif jest nieobecny.
Czy mogę używać czcionek w kontenerach Linux/Docker bez instalacji systemowej?
Tak. Wskaż własne foldery czcionek lub ładować czcionki z tablic bajtów. To usuwa wszelkie zależności od systemowych katalogów czcionek w obrazie kontenera.
Co z licencjonowaniem — czy mogę osadzić dowolną własną czcionkę bez ograniczeń?
Jesteś odpowiedzialny za zgodność z licencją czcionki. Warunki się różnią; niektóre licencje zakazują osadzania lub użycia komercyjnego. Zawsze sprawdzaj EULA czcionki przed rozpowszechnianiem wyników.