Szövegrészlet határok lekérése prezentációkból PHP-ben
Áttekintés
A szövegrészlet egy bekezdésen belüli konkrét szövegszakaszt jelöl, és lehetővé teszi, hogy a környező tartalomtól függetlenül dolgozzon ezzel a szakaszzal. Az Aspose.Slides-ban a részek akkor használhatók, amikor a szövegszakasz határait kell lekérdezni, csak a bekezdés egy részére kell formázást alkalmazni, vagy részletesebb szinten kell a szöveg viselkedését szabályozni.
Ez a cikk bemutatja, hogyan lehet lekérni egy szövegrészlet határoló téglalapját a Portion::getRect használatával. Emellett bemutatja, hogyan lehet lekérni a szövegrészlet elejének koordinátáit a Portion::getCoordinates használatával. Továbbá kiemeli a gyakori részlethez kapcsolódó forgatókönyveket, például egyetlen szövegszakaszra való hiperhivatkozás alkalmazását, a formázás megoldásának megértését a részlet, bekezdés, szövegkeret és téma öröklődésén keresztül, valamint a megadott betűtípus hiánya esetén történő kezelést.
A szövegrészlet határainak lekérése
Használja a Portion::getRect a szövegrészlet határoló téglalapjának lekéréséhez:
$presentation = new Presentation("Shapes.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->get_Item(0);
foreach ($shape->getTextFrame()->getParagraphs() as $paragraph) {
foreach ($paragraph->getPortions() as $portion) {
$rectangle = $portion->getRect();
$rectangleX = java_values($rectangle->getX());
$rectangleY = java_values($rectangle->getY());
$rectangleWidth = java_values($rectangle->getWidth());
$rectangleHeight = java_values($rectangle->getHeight());
echo("X = " . $rectangleX . "; Y = " . $rectangleY . "; Width = " . $rectangleWidth . "; Height = " . $rectangleHeight);
}
}
} finally {
$presentation->dispose();
}
A szövegrészlet koordinátáinak lekérése
Használja a Portion::getCoordinates a szövegrészlet elejének koordinátáinak lekéréséhez:
$presentation = new Presentation("Shapes.pptx");
try {
$slide = $presentation->getSlides()->get_Item(0);
$shape = $slide->getShapes()->get_Item(0);
foreach ($shape->getTextFrame()->getParagraphs() as $paragraph) {
foreach ($paragraph->getPortions() as $portion) {
$point = $portion->getCoordinates();
$pointX = java_values($point->getX());
$pointY = java_values($point->getY());
echo("X = " . $pointX . "; Y = " . $pointY);
}
}
} finally {
$presentation->dispose();
}
GYIK
Alkalmazhatok hiperhivatkozást csak a szöveg egy részére egyetlen bekezdésen belül?
Igen, egy hiperhivatkozás hozzárendelése egy egyedi részlethez; csak ez a szakasz lesz kattintható, nem a teljes bekezdés.
Hogyan működik a stílus öröklés: mit felülír egy részlet, és mi származik bekezdésből vagy szövegkeretből?
A részletszintű tulajdonságok a legmagasabb precedenciával rendelkeznek. Ha egy tulajdonság nincs beállítva a Portion, az Aspose.Slides a Paragraph‑tól veszi. Ha ott sem van beállítva, az Aspose.Slides a TextFrame vagy a theme stílusát használja.
Mi történik, ha a részlethez megadott betűtípus hiányzik a céleszközön vagy a szerveren?
Betűtípus helyettesítési szabályok érvényesek. A szöveg újra tördelődhet: a metrikák, elválasztás és a szélesség változhat, ami a pontos elhelyezés szempontjából fontos.
Beállíthatok részlet‑specifikus szövegtöltés átlátszóságot vagy színátmenetet a bekezdés többi részétől függetlenül?
Igen, a szövegszín, a kitöltés és az átlátszóság a Portion szinten eltérhet a szomszédos szakaszoktól.