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, amely a prezentáció megjelenítése vagy konvertálása során nem érhető el. A helyettesítés a megjelenített kimenetet érinti; 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 ellenőrizheti a Aspose.Slides által a megjelenítés során végrehajtott helyettesítéseket. Ez segít az output konzisztens megtartásában különböző, eltérő telepített betűtípusokkal rendelkező környezetek között.
Ha egy betűtípus elérhető, de nem rendelkezik dedikált félkövér változattal, lásd a Betűtípusok kezelése dedikált félkövér betűtípus nélkül című szakaszt. Az a szakasz bemutatja, hogyan lehet rasterizálni az érintett szöveget a PDF exportálás során, valamint a szövegválasztásra, keresésre és méretezésre gyakorolt hatásokat.
Betűtípus helyettesítések lekérése
Használja a FontsManager::getSubstitutions metódust annak meghatározásához, hogy mely betűtípusok lesznek helyettesítve a prezentáció megjeleníté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ő PHP példa felsorolja az összes betűtípus helyettesítést egy prezentációhoz:
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();
}
Kijelölt diák betűtípus helyettesítéseinek lekérése
Használja a FontsManager::getSubstitutions túlterhelését int[] slides argumentummal, hogy csak a konkrét diák megjelenítéséhez szükséges helyettesítéseket vizsgálja. Ez akkor hasznos, ha a prezentáció egy részét jeleníti meg vagy exportálja, nagy prezentációt inkrementálisan ellenőriz, olyan diákot keres, amelyek nem elérhető betűtípusoktól függenek, egy minimális betűtípuscsomagot készít a szerver vagy tároló számára, vagy a megjelenítési különbségeket diagnosztizálja anélkül, hogy a nem kapcsolódó diákot feldolgozná.
A slides tömb egy‑alapú diák indexeket tartalmaz: az 1 az első diát jelöli. Ezzel szemben a Presentation::getSlides gyűjtemény‑hozzáférő null‑alapú indexelést használ, így ugyanaz a dia $presentation->getSlides()->get_Item(0) formában érhető el. 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últerhelést a Presentation::getFontsManager metóduson keresztül. Ez csak a kiválasztott diák megjelenítése közben meghatározott helyettesítéseket adja vissza. Minden eredmény egy FontSubstitutionInfo objektum, amely tartalmazza az eredeti és a helyettesített betűtípusok nevét. Az eredmény tükrözi az aktuális betűtípus‑környezetet, a konfigurált tartalék‑szabályokat, a FontSubstRuleCollection tárolt helyettesítési szabályokat, valamint a külsőleg betöltött betűtípusokat.
Ugyanaz a helyettesítés több mint egy kiválasztott dián is szükséges lehet. Szűrje le a duplikált eredményeket, amikor betűtípus‑leltárt vagy előrepülés‑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:
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();
}
FontsManager osztály mindkét túlterhelést biztosítja. Válasszon egyet a megjelenítési művelet hatókörének megfelelően:
| Túlterhelés | Mikor használja |
|---|---|
| getSubstitutions argumentumok nélkül | Ha a teljes prezentációhoz van szükség helyettesítésekre. |
getSubstitutions int[] slides‑el |
Ha egy kiválasztott tartományhoz, inkrementális 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 betűtípus megadásához, amelyet az Aspose.Slides-nek kell használnia, ha a forrásbetűtípus nem érhető el:
- Töltse be a prezentációt.
- Hozzon létre betűtípus‑definíciókat a forrás‑ és helyettesítő betűtípusokhoz.
- Hozzon létre egy FontSubstRule elemet a WhenInaccessible feltétellel.
- Adja hozzá a szabályt egy FontSubstRuleCollection gyűjteményhez.
- Az FontsManager::setFontSubstRuleList metódussal rendelje hozzá a gyűjteményt.
- Renderelje vagy konvertálja a prezentációt.
A következő PHP példa a SomeRareFont helyett az Arial betűtípust használja, amikor a SomeRareFont nem érhető el, majd rendereli az első diát a eredmény ellenőrzéséhez. A helyettesítő betűtípust 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 használt betűtípusok feltétel nélküli módosításához lásd a Betűtípus csere című oldalt.Korlátozások a matematikai egyenlet betűtípusoknál
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észét képezik. 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ípusra tudja cserélni.
Az Office Math egyenleteknek további követelményük van. Ha egy egyenlet Cambria Math betűtípust használ, az Aspose.Slides-nek pontosan azt 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) helyettesítő szabály nem helyettesítheti a Cambria Math betűtípust ebben a célban, és a renderelés továbbra is jelezheti, hogy Cambria Math szükséges.
Egy ilyen prezentáció rendereléséhez vagy konvertálásához tegye a Cambria Math betűtípust elérhetővé az Aspose.Slides számára. Telepítse azt az operációs rendszerbe, vagy töltse be külső betűtípusként.
Ez a korlátozás az egyenleti elrendezésre vonatkozik. A fent leírt helyettesítési szabályok továbbra is érvényesek a prezentáció szokásos 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 prezentáció során. A betűtípus helyettesítés a megjelenített kimenethez választ egy betűtípust, amikor a konfigurált feltétel teljesül, például amikor az eredeti betűtípus nem érhető el.
Mikor kerülnek alkalmazásra a helyettesítési szabályok?
A szabályok a betűtípus választási sorozat résztvevői a renderelés és konvertálás során. A WhenInaccessible esetén a szabály csak akkor használatos, amikor 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 saját betűtípus‑kiválasztási folyamata szerint a legközelebbi elérhető betűtípust választja. 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ölthet külső betűtípusokat, hogy az Aspose.Slides a renderelés és konvertálás során használhassa őket.
Terjeszti-e az Aspose a betűtípusokat a könyvtárral?
Nem. Ön felelős a betűtípusok biztosításáért és azok licencfeltételeinek 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 eltérnek, ezért egy gépen elérhető betűtípus egy másikon helyettesítést igényelhet.
Hogyan tehetem a betűtípus kiválasztást konzisztenssé kötegelt konvertálások során?
Használjon azonos 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 ágyazza be a betűtípusokat, ha a licenc engedélyezi. Az exportálás előtt hívhatja a FontsManager::getSubstitutions metódust is, hogy azonosítsa a váratlan helyettesítéseket.