Я использую PHP GD для генерации некоторых цифровых сертификатов, в которых я уже отписал и сгенерировал некоторый текст.
Дело в том, что в той части, где полные имена людей go, следующий , только затем, я должен разместить идентификационный номер. Но в другом размере.
Вопрос в том, что я генерирую этот текст с помощью собственной функции для центрирования, но я не знаю, как из того же текста я бы изменил положение и сохранил выравнивание по центру
проверьте это:
function textSize($size, $angle, $font, $text) {
$f = imagettfbbox($size, $angle, $font, $text);
return array(
'height' => $f[1] - $f[5],
'width' => $f[4] - $f[0]
);
}
function text(&$im, $size, $angle, $y, $color, $font, $text, $align) {
// Image/text sizes
$imageSize = array(
'height' => imagesy($im),
'width' => imagesx($im)
);
$textSize = textSize($size, $angle, $font, $text);
// Starting $x position
switch(strtoupper($align)) {
case 'R':
$x = $imageSize['width'] - $textSize['width'];
break;
case 'C':
$x = ($imageSize['width'] - $textSize['width']) / 2;
break;
default:
$x = 0; // L
}
// Render
imagettftext($im, $size, $angle, $x, $y, $color, $font, $text);
return $x;
}
function CreateImg($valuenames,$valuelastname,$valuedni,$total_hours,$last_day,$month,$year)
{
$image_path = 'images/7x2_certificado_en_blanco.jpg';
$image_to = 'images/7x2_certificado_en_blanco_modificed.jpg';
$font_path_arial = '/rsc/arial.ttf';
$font_path_arial_bold = '/rsc/arial_bold.ttf';
$im = imagecreatefromjpeg($image_path);
$black = imagecolorallocate($im, 0, 0, 0);
$textnames = $valuenames;
$textlastnames = $valuelastnames;
$textdni = $valuedni;
$titular = $textnames.' '.$textlastnames;
$bbox = imagettfbbox(72, 0, $font_path_arial, $titular);
imagettftext($im, 48, 0, (text($im, 72, 0, 1035, $black, $font_path_arial_bold, $titular, 'c') + $bbox[4]+50), 1035, $black, $font_path_arial,' DNI:'.$valuedni);
imagettftext($im, 36, 0, 1095, 1490, $black, $font_path_arial,$total_hours);
imagettftext($im, 36, 0, 1965, 1490, $black, $font_path_arial,$last_day);
imagettftext($im, 36, 0, 2200, 1490, $black, $font_path_arial,$month);
imagettftext($im, 36, 0, 2495, 1490, $black, $font_path_arial,$year);
imagejpeg($im,$image_to);
if(imagejpeg($im,$image_to)){
imagedestroy($im);
return $image_to;
} else {
echo('error');
}
}
?>
, и вот что я хочу сделать:
imagen
что Полные имена и идентификационные номера всегда центрированы, а идентификационные номера имеют другой размер. Как бы я это сделал?