Bekezdés határainak lekérése a bemutatókban PHP használatával
Áttekintés
Ez a cikk bemutatja, hogyan lehet lekérni a bekezdések és szövegrészek határát, méretét és koordinátáit az Aspose.Slides-ban. Megmutatja, hogyan lehet a bekezdés téglalapját egy TextFrame-ben a getRect() használatával lekérni, hogyan lehet a bekezdés és a rész koordinátáit egy táblázatcellás szövegkeretben megszerezni, és kiemeli a fontos részleteket, mint például a mértékegységek, a szöveg tördelésének hatása a határokra, a pixel átalakítás, valamint a hatékony bekezdésformázási értékek.
Bekezdés és szakasz koordináták lekérése egy TextFrame-ben
Aspose.Slides for PHP via Java használatával a fejlesztők most már lekérhetik a bekezdés téglalap koordinátáit a TextFrame bekezdéggyűjteményén belül. Emellett lehetővé teszi a the coordinates of portion lekérését egy bekezdés szakaszgyűjteményén belül. Ebben a témában egy példával bemutatjuk, hogyan lehet a bekezdés téglalap koordinátáit és a szakasz pozícióját a bekezdésen belül lekérni.
$shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$textFrame = $shape->getTextFrame();
foreach($textFrame->getParagraphs() as $paragraph) {
foreach($paragraph->getPortions() as $portion) {
$point = $portion->getCoordinates();
}
}
Bekezdés téglalap koordinátáinak lekérése
A getRect() metódus használatával a fejlesztők lekérhetik a bekezdés határát alkotó téglalapot.
$pres = new Presentation("HelloWorld.pptx");
try {
$shape = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$textFrame = $shape->getTextFrame();
$rect = $textFrame->getParagraphs()->get_Item(0)->getRect();
echo("X: " . $rect->$x . " Y: " . $rect->$y . " Width: " . $rect->$width . " Height: " . $rect->$height);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
A bekezdés és szakasz méretének lekérése egy táblázatcellás TextFrame-ben
A Portion vagy Paragraph méretének és koordinátáinak lekéréséhez egy táblázatcella szövegkeretben használhatja a Portion::getRect és a Paragraph::getRect metódusokat.
Ez a példakód bemutatja a leírt műveletet:
$pres = new Presentation("source.pptx");
try {
$tbl = $pres->getSlides()->get_Item(0)->getShapes()->get_Item(0);
$cell = $tbl->getRows()->get_Item(1)->get_Item(1);
$x = $tbl->getX() + $tbl->getRows()->get_Item(1)->get_Item(1)->getOffsetX();
$y = $tbl->getY() + $tbl->getRows()->get_Item(1)->get_Item(1)->getOffsetY();
foreach($cell->getTextFrame()->getParagraphs() as $para) {
if ($para->getText()->equals("")) {
continue;
}
$rect = $para->getRect();
$shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, $rect->getX() + $x, $rect->getY() + $y, $rect->getWidth(), $rect->getHeight());
$shape->getFillFormat()->setFillType(FillType::NoFill);
$shape->getLineFormat()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
$shape->getLineFormat()->getFillFormat()->setFillType(FillType::Solid);
foreach($para->getPortions() as $portion) {
if ($portion->getText()->contains("0")) {
$rect = $portion->getRect();
$shape = $pres->getSlides()->get_Item(0)->getShapes()->addAutoShape(ShapeType::Rectangle, $rect->getX() + $x, $rect->getY() + $y, $rect->getWidth(), $rect->getHeight());
$shape->getFillFormat()->setFillType(FillType::NoFill);
}
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Milyen egységben adják vissza a bekezdés és szövegrészek koordinátáit?
Pontban, ahol 1 hüvelyk = 72 pont. Ez minden koordinátára és méretre érvényes a dián.
A szóeltörés befolyásolja a bekezdés határait?
Igen. Ha a wrapping engedélyezve van a TextFrame-ben, a szöveg a terület szélességéhez igazodik, ami módosítja a bekezdés tényleges határait.
A bekezdés koordinátái megbízhatóan leképezhetők képpontokra az exportált képen?
Igen. A pontokat a következőképpen konvertálja képpontokra: pixels = points × (DPI / 72). Az eredmény a renderelés/exportálás során kiválasztott DPI-től függ.
Hogyan szerezhetem meg a „hatékony” bekezdésformázási paramétereket, figyelembe véve a stílusöröklődést?
Használja a effective paragraph formatting data structure; ez visszaadja a végső, egyesített értékeket a behúzásokra, távolságokra, tördelésre, RTL-re és egyéb beállításokra vonatkozóan.