Управление текстовыми фрагментами в презентациях с использованием Java
Получить координаты части текста
getCoordinates() метод был добавлен в классы IPortion и Portion, что позволяет получать координаты начала части.
// Создать объект класса Presentation, представляющий PPTX
Presentation pres = new Presentation();
try {
// Изменение контекста презентации
IAutoShape shape = (IAutoShape) pres.getSlides().get_Item(0).getShapes().get_Item(0);
ITextFrame textFrame = (ITextFrame) shape.getTextFrame();
for (IParagraph paragraph : textFrame.getParagraphs())
{
for (IPortion portion : paragraph.getPortions())
{
Point2D.Float point = portion.getCoordinates();
System.out.println("X: " + point.x + " Y: " + point.y);
}
}
} finally {
if (pres != null) pres.dispose();
}
FAQ
Могу ли я применить гиперссылку только к части текста внутри одного абзаца?
Да, вы можете присвоить гиперссылку отдельной части; только этот фрагмент будет кликабельным, а не весь абзац.
Как работает наследование стилей: что переопределяет Portion и что берётся из Paragraph/TextFrame?
Свойства уровня Portion имеют наивысший приоритет. Если свойство не задано на Portion, движок берёт его из Paragraph; если и там оно не задано, — из TextFrame или стиля theme.
Что происходит, если указанный для Portion шрифт отсутствует на целевой машине/сервере?
правила замены шрифтов применяются. Текст может перераспределиться: могут измениться метрики, переносы и ширина, что важно для точного позиционирования.
Могу ли я задать прозрачность или градиент заливки текста для конкретного Portion независимо от остального абзаца?
Да, цвет текста, заливка и прозрачность на уровне Portion могут отличаться от соседних фрагментов.