TCPDF Расположение текста и изображений - PullRequest
0 голосов
/ 26 февраля 2019

Итак, я пытаюсь сгенерировать PDF автомобильных дисков, используя TCPDF.По сути, текст и изображение всегда должны быть в центре поля.Мне удалось это с помощью позиционирования.Формат должен быть следующим:

AAA <img> BB CCC

Обратите внимание на больший интервал между BB и CCC.Расстояние между изображениями в центре одинаково между AA и <img> и <img> и BB.

Приложение A

Теперь,Моя главная проблема заключается в том, что я могу отобразить следующее (это идеально выровнено и разнесено. Также обратите внимание на больший пробел между BB и CCC по сравнению с аналогичным пространством между AAA <img> и <img> BB): AAA <img> BB CCC напримерenter image description here

Приложение B

Однако, скажем, я пытаюсь (Неправильный интервал, который должен быть правильно расположен по центру в поле): AA <img> BB CCCC например enter image description here

Приложение C

Вот еще один случай, в котором все идет не так: enter image description here

Проблема теперь заключается в следующем: интервал не очень хороший, так как должен быть один пробел между AA и <img> и <img> и BB.Между BB и CCCC должен быть больший пробел (3 пробела).

Вот ссылка на настоящий онлайн-генератор, который использует Javascript для отображения того, как должен выглядеть вывод: https://brelok.de/#konfigurator

enter image description here

Если вы введете текстовые поля, вы поймете, почему мой PDF не генерируется должным образом.

Вот кодЯ пробовал и который дает вывод Экспонат A :

$x = 80;
$y = 50;
$width = 51.8;
$height = 10.8;

$pdf->Rect($x, $y, $width, $height);
$pdf->cropMark($x, $y, 10, 10, 'TL');
$pdf->cropMark($x + $width, $y, 10, 10, 'TR');
$pdf->cropMark($x, $y + $height, 10, 10, 'BL');
$pdf->cropMark($x + $width, $y + $height, 10, 10, 'BR');

//Country_Image
$country_width = 5;
$country_height = 10.8;

//Images
$pdf->Image('../../images/country/desuthchland-icon.png', $x, $y, $country_width, $country_height, '', '', '', false, 300);

$left_text_x = 85;
$left_text_y = 50;

$middle_img_top_x = $left_text_x + 15.8;
$middle_img_top_y = $y + 0.6;

$middle_img_bottom_x = $left_text_x + 15.3;
$middle_img_bottom_y = $y + 5.1;

$middle_text_x = $middle_img_bottom_x + 4.7;
$middle_text_y = $left_text_y;

$right_text_x = $middle_text_x + 11.3;
$right_text_y = $left_text_y;

//Text
$pdf->Text($left_text_x, $left_text_y, 'AAA', false, false, true, 0, 0, '', false, '', 0, false, 'T', 'M', false ); //Left

$pdf->Image('../../images/bundesland/Baden-Wurttemberg.png', $middle_img_top_x, $middle_img_top_y, 4, 4, '', '', '', false, 300); //Top img mid
$pdf->Image('../../images/plakette/rose.png', $middle_img_bottom_x, $middle_img_bottom_y, 5, 5, '', '', '', false, 300); //Bottom img mid

$pdf->Text($middle_text_x, $middle_text_y, 'B', false, false, true, 0, 0, '', false, '', 0, false, 'T', 'M', false ); //Middle
$pdf->Text($right_text_x, $right_text_y, 'CCC', false, false, true, 0, 0, '', false, '', 0, false, 'T', 'M', false ); //Right

Код работает только для Экспонат A .Но в остальном это просто не работает, так как текст и интервал уже не совпадают.Кроме того, я не могу центрировать весь контент внутри коробки, кроме Приложение A .Я думаю, что мне не хватает какой-то логики здесь и, возможно, сделал некоторое жесткое кодирование.Но я попробовал несколько способов обойти это и не могу понять.

...