Określ domyślne czcionki prezentacji w Javie

Przegląd

Aspose.Slides umożliwia określenie domyślnych czcionek używanych podczas renderowania prezentacji. Jest to przydatne przy generowaniu miniaturek slajdów lub eksportowaniu prezentacji do formatów takich jak PDF i XPS. Domyślne czcionki konfiguruje się za pomocą LoadOptions przed załadowaniem prezentacji.

Metoda setDefaultRegularFont definiuje domyślną czcionkę dla zwykłego tekstu, natomiast setDefaultAsianFont definiuje domyślną czcionkę dla tekstu azjatyckiego. Po ustawieniu tych opcji prezentację można załadować i renderować przy użyciu określonych czcionek.

Użyj domyślnych czcionek do renderowania prezentacji

Aspose.Slides pozwala ustawić domyślną czcionkę przy renderowaniu prezentacji do PDF, XPS lub miniaturek. Ten artykuł pokazuje, jak zdefiniować DefaultRegularFont i DefaultAsianFont jako czcionki domyślne. Postępuj zgodnie z poniższymi krokami, aby wczytać czcionki z zewnętrznych katalogów przy użyciu Aspose.Slides for Java API:

  1. Utwórz instancję LoadOptions.
  2. Ustaw DefaultRegularFont na żądaną czcionkę. W poniższym przykładzie użyto Wingdings.
  3. Ustaw DefaultAsianFont na żądaną czcionkę. W przykładzie użyto Wingdings.
  4. Załaduj prezentację używając klasy Presentation i ustawiając opcje ładowania.
  5. Następnie wygeneruj miniaturkę slajdu, PDF i XPS, aby zweryfikować wyniki.

Implementacja powyższego znajduje się poniżej.

// Użyj opcji ładowania, aby określić domyślne czcionki regularne i azjatyckie
LoadOptions loadOptions = new LoadOptions(LoadFormat.Auto);
loadOptions.setDefaultRegularFont("Wingdings");
loadOptions.setDefaultAsianFont("Wingdings");

// Załaduj prezentację
Presentation pres = new Presentation("DefaultFonts.pptx", loadOptions);
try {
    // Wygeneruj miniaturę slajdu
    IImage slideImage = pres.getSlides().get_Item(0).getImage(1, 1);
    try {
         // zapisz obraz na dysku.
          slideImage.save("output.png", ImageFormat.Png);
    } finally {
         if (slideImage != null) slideImage.dispose();
    }

    // Wygeneruj PDF
    pres.save("output_out.pdf", SaveFormat.Pdf);

    // Wygeneruj XPS
    pres.save("output_out.xps", SaveFormat.Xps);
} catch (IOException e) {
} finally {
    if (pres != null) pres.dispose();
}

FAQ

Co dokładnie wpływa DefaultRegularFont i DefaultAsianFont — tylko eksport, czy także miniaturki, PDF, XPS, HTML i SVG?

Uczestniczą w łańcuchu renderowania dla wszystkich obsługiwanych formatów wyjściowych. Obejmuje to miniaturki slajdów, PDF, XPS, obrazy rastrowe, HTML, oraz SVG, ponieważ Aspose.Slides używa tej samej logiki układu i rozwiązywania glifów we wszystkich tych celach.

Czy domyślne czcionki są stosowane przy zwykłym odczycie i zapisie pliku PPTX bez renderowania?

Nie. Domyślne czcionki mają znaczenie, gdy tekst musi być zmierzony i narysowany. Proste otwarcie i zapisanie prezentacji nie zmienia zapisanych przebiegów czcionek ani struktury pliku. Domyślne czcionki wchodzą w grę podczas operacji, które renderują lub przetwarzają tekst.

Jeśli dodam własne foldery czcionek lub dostarczę czcionki z pamięci, czy będą brane pod uwagę przy wyborze domyślnych czcionek?

Tak. Custom font sources rozszerzają katalog dostępnych rodzin i glifów, z których silnik może korzystać. Domyślne czcionki i wszelkie fallback rules będą najpierw rozwiązywać się względem tych źródeł, zapewniając lepsze pokrycie na serwerach i w kontenerach.

Czy domyślne czcionki wpływają na metryki tekstu (kerning, advance) i tym samym na podziały linii i zawijanie?

Tak. Zmiana czcionki zmienia metryki glifów i może wpływać na podziały linii, zawijanie oraz paginację podczas renderowania. Dla stabilności układu, embed the original fonts lub wybierz domyślne i zapasowe rodziny o zgodnych metrykach.

Czy ma sens ustawianie domyślnych czcionek, jeśli wszystkie czcionki użyte w prezentacji są osadzone?

Często nie jest to konieczne, ponieważ embedded fonts już zapewniają spójny wygląd. Domyślne czcionki nadal pełnią rolę zabezpieczenia dla znaków nieobjętych osadzonym podzbiorem lub gdy plik miesza tekst osadzony i nieosadzony.