Betűtípus-helyettesítés beállítása prezentációkban PHP használatával
Áttekintés
A betűtípus‑helyettesítés lehetővé teszi, hogy az Aspose.Slides egy elérhető betűtípust használjon egy olyan betűtípus helyett, amelyet a prezentáció renderelése vagy konvertálása során nem lehet elérni. A helyettesítés a megjelenített kimenetet befolyásolja; nem módosítja a prezentáció tartalmához rendelt betűtípust.
Megadhatja, hogy melyik betűtípust használja, ha egy adott betűtípus nem áll rendelkezésre, és megvizsgálhatja a helyettesítéseket, amelyeket az Aspose.Slides a renderelés során végrehajt. Ez segít az eredmény konzisztens megtartásában a különböző telepített betűtípusokkal rendelkező környezetek között.
Betűtípus‑helyettesítések lekérdezése
Használja a FontsManager::getSubstitutions metódust annak meghatározásához, hogy a prezentáció renderelése során mely betűtípusok lesznek helyettesítve. A metódus FontSubstitutionInfo objektumokat ad vissza, amelyek az eredeti és a helyettesített betűtípusok neveit azonosítják.
Az alábbi PHP példa felsorolja a prezentáció összes betűtípus‑helyettesítését:
use aspose\slides\Presentation;
$presentation = new Presentation("Presentation.pptx");
try {
$enumerator = $presentation->getFontsManager()->getSubstitutions()->iterator();
try {
while (java_values($enumerator->hasNext())) {
$substitution = $enumerator->next();
$originalFontName = java_values($substitution->getOriginalFontName());
$substitutedFontName = java_values($substitution->getSubstitutedFontName());
echo $originalFontName . " -> " . $substitutedFontName . PHP_EOL;
}
} finally {
$enumerator->dispose();
}
} finally {
$presentation->dispose();
}
Betűtípus‑helyettesítések lekérdezése a kiválasztott diákhoz
Használja a FontsManager::getSubstitutions túlterhelést int[] slides argumentummal, hogy csak a konkrét diák rendereléséhez szükséges helyettesítéseket vizsgálja. Ez hasznos, ha a prezentáció egy részét rendereli vagy exportálja, egy nagy prezentációt fokozatosan ellenőrzi, olyan diákokat keres, amelyek nem elérhető betűtípusoktól függenek, 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át feldolgozná.
A slides tömb egy‑alapú diákindexeket tartalmaz: 1 az első diát jelöli. Ezzel szemben a Presentation::getSlides gyűjteményhozzáférő nullábas indexelést használ, így ugyanaz a dia $presentation->getSlides()->get_Item(0)‑ként érhető el. Tartsa szem előtt ezt a különbséget a tömb építésekor, hogy elkerülje az egy‑off‑by‑one hibákat.
Hívja meg a túlterhelést a Presentation::getFontsManager metóduson keresztül. 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 neveit tartalmazza. Az eredmény tükrözi a jelenlegi betűtípus‑környezetet, a beállított visszaeső szabályokat, a FontSubstRuleCollection‑ben tárolt helyettesítési szabályokat, valamint a külső betöltésű betűtípusokat.
Ugyanaz a helyettesítés több kiválasztott dián is előfordulhat. Szűrje le a duplikátumokat, amikor betűtípus‑leltárt vagy elő‑letöltési jelentést készít. Az alábbi példa minden visszakapott helyettesítést jelent, majd egy rendezett listát hoz létre az egyedi betűtípus‑leképezésekről:
use aspose\slides\Presentation;
$presentation = new Presentation("Presentation.pptx");
try {
$selectedSlides = [1, 3, 5];
$substitutions = [];
$enumerator = $presentation->getFontsManager()->getSubstitutions($selectedSlides)->iterator();
try {
while (java_values($enumerator->hasNext())) {
$substitutions[] = $enumerator->next();
}
} finally {
$enumerator->dispose();
}
echo "Substitutions for the selected slides:" . PHP_EOL;
foreach ($substitutions as $substitution) {
$originalFontName = java_values($substitution->getOriginalFontName());
$substitutedFontName = java_values($substitution->getSubstitutedFontName());
echo $originalFontName . " -> " . $substitutedFontName . PHP_EOL;
}
$sortedPreflightEntries = [];
foreach ($substitutions as $substitution) {
$originalFontName = java_values($substitution->getOriginalFontName());
$substitutedFontName = java_values($substitution->getSubstitutedFontName());
$entry = $originalFontName . " -> " . $substitutedFontName;
$sortedPreflightEntries[strtolower($entry)] = $entry;
}
ksort($sortedPreflightEntries, SORT_NATURAL | SORT_FLAG_CASE);
echo "Deduplicated font preflight report:" . PHP_EOL;
foreach ($sortedPreflightEntries as $entry) {
echo $entry . PHP_EOL;
}
} finally {
$presentation->dispose();
}
A FontsManager osztály mindkét túlterhelést biztosítja. Válasszon egyet a renderelési művelet hatókörének megfelelően:
| Túlterhelés | Használja, ha |
|---|---|
| getSubstitutions argumentumok nélkül | A teljes prezentációhoz szükséges a helyettesítések. |
getSubstitutions int[] slides paraméterrel |
Kiválasztott tartományhoz, fokozatos ellenőrzéshez vagy részleges exportáláshoz van szükség helyettesítésekre. |
Betűtípus‑helyettesítési szabályok beállítása
A forrásbetűtípus nem elérhető esetén a következő lépésekben adhatja meg, hogy az Aspose.Slides mely betűtípust használja:
- Töltse be a prezentációt.
- Hozzon létre betűtípus‑definíciókat a forrás és a helyettesítő betűtípusokhoz.
- Hozzon létre egy FontSubstRule objektumot a WhenInaccessible feltétellel.
- Adja hozzá a szabályt egy FontSubstRuleCollection gyűjteményhez.
- Rendelje hozzá a gyűjteményt a FontsManager::setFontSubstRuleList metódus segítségével.
- Renderelje vagy konvertálja a prezentációt.
Az alábbi PHP példa a Arial betűtípust használja a SomeRareFont helyett, amikor a SomeRareFont nem érhető el, majd rendereli az első diát az eredmény ellenőrzéséhez. A helyettesítő betűtípusnak elérhetőnek kell lennie az Aspose.Slides számára.
use aspose\slides\FontData;
use aspose\slides\FontSubstCondition;
use aspose\slides\FontSubstRule;
use aspose\slides\FontSubstRuleCollection;
use aspose\slides\ImageFormat;
use aspose\slides\Presentation;
$presentation = new Presentation("Fonts.pptx");
try {
$sourceFont = new FontData("SomeRareFont");
$substituteFont = new FontData("Arial");
$substitutionRule = new FontSubstRule($sourceFont, $substituteFont, FontSubstCondition::WhenInaccessible);
$substitutionRules = new FontSubstRuleCollection();
$substitutionRules->add($substitutionRule);
$presentation->getFontsManager()->setFontSubstRuleList($substitutionRules);
$image = $presentation->getSlides()->get_Item(0)->getImage(1.0, 1.0);
try {
$image->save("slide.jpg", ImageFormat::Jpeg);
} finally {
$image->dispose();
}
} finally {
$presentation->dispose();
}
Note
A prezentációban felhasznált betűtípusok mindenütt történő feltétlen módosításához lásd a Font Replacement oldalt.Matematikai egyenlet betűtípusok korlátozásai
A betűtípus‑helyettesítési szabályok a renderelés és konvertálás során használt szabványos betűtípus‑kiválasztási folyamat részei. Normál 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íthet.
Az Office Math egyenleteknek további követelményük van. Ha egy egyenlet Cambria Math‑ot használ, az Aspose.Slides számára előfordulhat, hogy 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 másik matematikai betűtípust, például STIX Two Math‑ot helyettesítő szabály nem tudja felváltani a Cambria Math‑ot ebben a célban, és a renderelés továbbra is azt jelezheti, hogy Cambria Math szükséges.
Az ilyen prezentáció rendereléséhez vagy konvertálásához tegye elérhetővé a Cambria Math‑ot az Aspose.Slides számára. Telepítse a rendszerben, vagy töltse be egy külső betűtípusként.
Ez a korlátozás az egyenlet‑elrendezésre vonatkozik. A fent leírt helyettesítési szabályok továbbra is érvényesek a normál prezentáció‑szövegre.
FAQ
Mi a különbség a betűtípус‑csere és a betűtípus‑helyettesítés között?
Font replacement célzottan megváltoztat egy betűtípust egy másikra a teljes prezentáció során. A betűtípus‑helyettesítés egy betűtípust választ a megjelenített 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 részt vesznek a font selection sequence folyamatában renderelés és konvertálás közben. WhenInaccessible esetén a szabály csak akkor kerül használatra, ha az Aspose.Slides nem tudja elérni a forrásbetűtípust.
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. Betöltheti a külső betűtípusokat, hogy az Aspose.Slides használni tudja őket a renderelés és konvertálás során.
Terjeszti-e az Aspose a betűtípusokat a könyvtárral együtt?
Nem. Ön felelős a betűtípusok biztosításáért és a licencfeltételek betartásáért.
Eltérhetnek 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 különböznek, így egy gépen elérhető betűtípus 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énerben, töltse be a szükséges külső betűtípusokat, és ágyazzon be betűtípusokat, ha a licenc ezt megengedi. Exportálás előtt meghívhatja a FontsManager::getSubstitutions metódust is, hogy azonosítsa a váratlan helyettesítéseket.