Betűtípus-helyettesítés konfigurálása bemutatókban Python segítségével Java-n keresztül
Áttekintés
A betűtípus-helyettesítés lehetővé teszi az Aspose.Slides számára, hogy egy elérhető betűtípust használjon egy nem hozzáférhető betűtípus helyett, amikor egy bemutatót renderelnek vagy konvertálnak. A helyettesítés a renderelt kimenetet érinti; nem módosítja a bemutató tartalmához rendelt betűtípust.
Megadhatja a használni kívánt betűtípust, ha egy adott betűtípus nem érhető el, és megtekintheti az Aspose.Slides által a renderelés során végrehajtott helyettesítéseket. Ez segít a kimenetet konzisztensnek tartani különböző, eltérő betűtípusokkal rendelkező környezetekben.
Betűtípus-helyettesítések lekérése
Használja a FontsManager.getSubstitutions módszert annak meghatározásához, mely betűtípusok lesznek helyettesítve a bemutató renderelésekor. A metódus FontSubstitutionInfo objektumokat ad vissza, amelyek az eredeti és a helyettesített betűtípusok nevét azonosítják.
A következő Python példa felsorolja az összes betűtípus-helyettesítést egy bemutatóhoz:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Presentation.pptx")
try:
for substitution in presentation.getFontsManager().getSubstitutions():
print(f"{substitution.getOriginalFontName()} -> {substitution.getSubstitutedFontName()}")
finally:
presentation.dispose()
Kijelölt diák betűtípus-helyettesítéseinek lekérése
Használja a FontsManager.getSubstitutions túltöltést egy Java egész szám tömb argumentummal, hogy csak a konkrét diák rendereléséhez szükséges helyettesítéseket ellenőrizze. Ez akkor hasznos, amikor a bemutató egy részét rendereli vagy exportálja, nagy bemutatót fokozatosan ellenőriz, olyan diákot keres, amelyek nem elérhető betűtípusokra támaszkodnak, egy minimális betűtípuscsomagot készít szerverhez vagy konténerhez, vagy a renderelési különbségeket diagnosztizálja anélkül, hogy a nem releváns diák feldolgozásra kerülnének.
slides tömb egy‑alapú diaindexeket tartalmaz: 1 az első diát jelöli. Ezzel ellentétben a Presentation.getSlides gyűjttár‑hozzáférő null‑alapú indexelést használ, így ugyanaz a dia így érhető el: presentation.getSlides().get_Item(0). Tartsa szem előtt ezt a különbséget a tömb építésekor, hogy elkerülje az egy‑off hibákat.
Hívja meg a túltöltést a Presentation.getFontsManager módszeren keresztül. Ez csak a kiválasztott diák renderelése során meghatározott helyettesítéseket adja vissza. Minden eredmény egy FontSubstitutionInfo objektum, amely az eredeti és a helyettesített betűtípusok nevét tartalmazza. Az eredmény tükrözi a jelenlegi betűtípus‑környezetet, a beállított tartalék‑szabályokat, a FontSubstRuleCollection‑ban tárolt helyettesítési szabályokat, valamint a külsőleg betöltött betűtípusok betűtípusokat.
Ugyanaz a helyettesítés több mint egy kijelölt dián is szükséges lehet. Szűrje ki a duplikátumokat, amikor betűtípus‑készletet vagy előellenőrző jelentést készít. A következő példa minden visszaadott helyettesítést jelent, majd egy rendezett listát hoz létre az egyedi betűtípus leképezésekről:
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import Presentation
presentation = Presentation("Presentation.pptx")
try:
selected_slides = jpype.JArray(jpype.JInt)([1, 3, 5])
substitutions = list(presentation.getFontsManager().getSubstitutions(selected_slides))
print("Substitutions for the selected slides:")
for substitution in substitutions:
print(f"{substitution.getOriginalFontName()} -> {substitution.getSubstitutedFontName()}")
unique_entries = {}
for substitution in substitutions:
entry = f"{substitution.getOriginalFontName()} -> {substitution.getSubstitutedFontName()}"
unique_entries.setdefault(entry.casefold(), entry)
print("Deduplicated font preflight report:")
for key in sorted(unique_entries):
print(unique_entries[key])
finally:
presentation.dispose()
A FontsManager osztály mindkét túltöltést biztosítja. Válasszon egyet a renderelési művelet hatóköre szerint:
| Túlterhelés | Használja amikor |
|---|---|
| getSubstitutions with no arguments | A teljes bemutatóhoz szükséges helyettesítéseket szeretné. |
| getSubstitutions with a Java integer array | Kijelölt tartományhoz, fokozatos ellenőrzéshez vagy részleges exportáláshoz szükséges helyettesítéseket szeretne. |
Betűtípus-helyettesítési szabályok beállítása
A betűtípus megadásához, amelyet az Aspose.Slidesnek kell használnia, ha a forrás betűtípus nem érhető el:
- Töltse be a bemutatót.
- Hozzon létre betűtípus‑definíciókat a forrás- és helyettesítő betűtípusokhoz.
- Hozzon létre egy FontSubstRule szabályt a WhenInaccessible feltétellel.
- Adja hozzá a szabályt egy FontSubstRuleCollection gyűjteményhez.
- Rendelje hozzá a gyűjteményt a FontsManager.setFontSubstRuleList módszerrel.
- Renderelje vagy konvertálja a bemutatót.
A következő Python példa a SomeRareFont nem elérhetősége esetén az Arial betűtípust helyettesíti, majd rendereli az első diát az eredmény ellenőrzéséhez. A helyettesítő betűtípust az Aspose.Slidesnek elérhetőnek kell lennie.
import jpype
import asposeslides
if not jpype.isJVMStarted():
jpype.startJVM()
from asposeslides.api import FontData, FontSubstCondition, FontSubstRule, FontSubstRuleCollection, ImageFormat, Presentation
presentation = Presentation("Fonts.pptx")
try:
source_font = FontData("SomeRareFont")
substitute_font = FontData("Arial")
substitution_rule = FontSubstRule(source_font, substitute_font, FontSubstCondition.WhenInaccessible)
substitution_rules = FontSubstRuleCollection()
substitution_rules.add(substitution_rule)
presentation.getFontsManager().setFontSubstRuleList(substitution_rules)
image = presentation.getSlides().get_Item(0).getImage(1.0, 1.0)
try:
image.save("slide.jpg", ImageFormat.Jpeg)
finally:
image.dispose()
finally:
presentation.dispose()
Megjegyzés
A bemutató során használt betűtípusok feltétlen módosításához lásd a Betűtípus csere oldalt.Korlátozások a matematikai egyenlet betűtípusoknál
A helyettesítési szabályok a renderelés és konverzió során használt szabványos betűtípus‑kiválasztási folyamat részei. Rendszeres szövegnél működnek, amikor az Aspose.Slides egy nem elérhető betűtípust a szabály által meghatározott elérhető betűtípussal helyettesíti.
Az Office Math egyenleteknek további követelményük van. Ha egy egyenlet Cambria Math betűtípust használ, az Aspose.Slidesnek pontosan ezt a betűtípust kell rendelkezésre állnia az egyenlet elrendezésének kiszámításához és rendereléséhez. Egy olyan szabály, amely egy másik matematikai betűtípust, például a STIX Two Math‑ot helyettesíti, nem tudja helyettesíteni a Cambria Math‑ot erre a célra, és a renderelés továbbra is jelezheti, hogy a Cambria Math szükséges.
Az ilyen bemutató rendereléséhez vagy konvertálásához tegye a Cambria Math betűtípust az Aspose.Slides számára elérhetővé. Telepítse azt az operációs rendszerben vagy töltse be egy külső betűtípusként .
Ez a korlátozás az egyenletelrendezésre vonatkozik. A fent leírt helyettesítési szabályok továbbra is érvényesek a bemutató normál szövegére.
GYIK
Mi a különbség a betűtípus csere és a betűtípus helyettesítés között?
Betűtípus csere szándékosan megváltoztat egy betűtípust egy másikra a teljes bemutatóban. A betűtípus‑helyettesítés egy betűtípust választ a renderelt kimenethez, amikor a beállított feltétel teljesül, például ha az eredeti betűtípus nem érhető el.
Mikor alkalmazzák a helyettesítési szabályokat?
A szabályok a renderelés és konverzió során a betűtípus‑kiválasztási sorozat résztvevői. A WhenInaccessible esetén a szabály csak akkor használatos, ha az Aspose.Slides nem fér hozzá a forrás betűtípushoz.
Mi történik, ha egy betűtípus hiányzik, és nincs beállítva helyettesítési szabály?
Az Aspose.Slides a legközelebbi elérhető betűtípust választja a betűtípus‑kiválasztási folyamata szerint. Az eredmény a futási környezetben elérhető betűtípusoktól függ.
Betölthetek külső betűtípusokat a helyettesítés elkerüléséhez?
Igen. Külső betűtípusok betöltése lehetővé teszi, hogy az Aspose.Slides használja őket a renderelés és konverzió során.
Terjeszti-e az Aspose a betűtípusokat a könyvtárral együtt?
Nem. Önnek kell biztosítania a betűtípusokat és betartania azok licencfeltételeit.
Eltérhetnek-e a helyettesítési eredmények Windows, Linux és macOS között?
Igen. A telepített betűtípusok és a betűtípus‑keresési helyek operációs rendszerenként eltérnek, így egy gépen elérhető betűtípus egy másik gépen helyettesítést igényelhet.
Hogyan tehetem a betűtípus‑kiválasztást konzisztenssé kötegelt konverziók során?
Használjon ugyanazokat a betűtípus‑fájlokat és verziókat minden gépen vagy konténeren, töltse be a szükséges külső betűtípusokat, és betűtípusok beágyazása amikor a licenc megengedi. Ezen felül meghívhatja a FontsManager.getSubstitutions metódust exportálás előtt az előre nem várt helyettesítések azonosításához.