Как добавить изображение, созданное в GD, в шаблон - PullRequest
0 голосов
/ 11 сентября 2018

Я ищу помощь с одной проблемой. Я хотел бы создать изображение с помощью imageJpeg. И это изображение добавить в шаблон с помощью openTBS.

шаблон:

[b.image;ope=changepic;from=[val];default=current;adjust]

PHP:

$TBS = $this->get('opentbs');
$TBS->NoErr = TRUE;
$TBS->LoadTemplate('template.odt', OPENTBS_ALREADY_UTF8);
$image = imageCreate(300,200);
$colorRed = imageColorAllocate($image, 255,0,0);
$colorYellow = imageColorAllocate($image, 255,255,0);
imageFilledRectangle($image, 50, 50, 250, 150, $colorYellow);
$cccc=imageJpeg($image);
imageDestroy($image);
$data = array('image'=>$cccc);
$TBS->MergeField('b', $data);
$TBS->Show(OPENTBS_DOWNLOAD, 'file_name.odt');

Однако изображение не соответствует размерам шаблона. После открытия файла видно только сгенерированное изображение.

1 Ответ

0 голосов
/ 12 сентября 2018

Согласно документации , imageJpeg () создает изображение и возвращает логическое значение.

Так что хорошим решением является использование временного файла:

...
$tmp = tempnam(sys_get_temp_dir(), 'tbs');
$cccc=imageJpeg($image, $tmp);
imageDestroy($image);
$data = array('image'=>$tmp);
$TBS->MergeField('b', $data);
$TBS->Show(OPENTBS_DOWNLOAD, 'file_name.odt');
...