Управление частями текста в презентациях с помощью PHP
Получить координаты части текста
getCoordinates() метод был добавлен в класс Portion который позволяет получить координаты начала части.
# Создать экземпляр класса Prseetation, представляющего PPTX
$pres = new Presentation();
try {
# Перестройка контекста презентации
$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();
echo("X: " . $point->$x . " Y: " . $point->$y);
}
}
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
FAQ
Могу ли я применить гиперссылку только к части текста в одном абзаце?
Да, вы можете назначить гиперссылку отдельной части; только этот фрагмент будет кликабельным, а не весь абзац.
Как работает наследование стилей: что переопределяет Portion и что берётся из Paragraph/TextFrame?
Свойства уровня Portion имеют наивысший приоритет. Если свойство не задано для Portion, движок берёт его из Paragraph; если оно не задано и там, — из TextFrame либо из стиля theme.
Что произойдёт, если шрифт, указанный для Portion, отсутствует на целевой машине/сервере?
Правила подстановки шрифтов применяются. Текст может перераспределяться: могут измениться метрики, переносы и ширина, что имеет значение для точного позиционирования.
Могу ли я задать прозрачность или градиент заливки текста на уровне Portion независимо от остального абзаца?
Да, цвет текста, заливка и прозрачность на уровне Portion могут отличаться от соседних фрагментов.