API Google Slides: как поместить текст в текстовое полеPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 API Google Slides: как поместить текст в текстовое поле

Сообщение Anonymous »

Поскольку автоподбор не работает в API, я работаю над разработкой специальной функции для расчета размера шрифта, подходящего для текста в текстовом поле. Однако результаты противоречивы, и я пока не нашел эффективного решения.
Вот функция, над которой я работаю:
function calculateTextFit($boxWidth, $boxHeight, $text, $fontSizeStartPT, $ScaleX, $ScaleY)
{
// (AgendaSlide, TitleSlide 1.2)
$fontAdjustmentFactor = $fontSizeStartPT > 26 ? 1.2 : 1.1;

$minFontSize = $this->ptToPixels(8) * $ScaleY;
$maxFontSize = $this->ptToPixels($fontSizeStartPT) * $ScaleY;
$lineSpacing = $this->ptToPixels(1.4) * $ScaleY;

$boxWidth = $this->emuToPixels($boxWidth) * $ScaleX; // Масштабування по X
$boxHeight = $this->emuToPixels($boxHeight) * $ScaleY; // Масштабування по Y

$areaSize = $boxWidth * $boxHeight;
preg_match_all('/(\n|\r|\n\n)/', $text, $matches);
$totalLineBreaks = count($matches[0]);

// is this an Asian language (Chinese, Korean, Japanese)?
$hasAsianCharacters = preg_match('/[\x{4E00}-\x{9FFF}\x{3040}-\x{30FF}\x{AC00}-\x{D7AF}\x{31F0}-\x{31FF}]/u', $text);
$textLen = mb_strlen($text);

for ($fontSize = $maxFontSize; $fontSize >= $minFontSize; $fontSize--) {

$fontWidth = $hasAsianCharacters ? $fontSize : $fontSize * $fontAdjustmentFactor ;
$textSize = $textLen * $fontWidth * $fontSize * $lineSpacing;
$textSize = $textSize + ($totalLineBreaks * $lineSpacing * $boxWidth);

if ($textSize pixelsToPt($fontSize);
return $newFontSize < 5 ? 5 : $newFontSize;
}
}

return $this->pixelsToPt($minFontSize);
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... -a-textbox
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»