В настоящее время я создаю редактор PDF. У меня проблема с реализацией обработки тегов.
Я хочу разрешить следующие теги: [h1],[h2],[h3],[h4],[h4],[h5],[h6],[strong]
Я создал класс с помощью метода drawText (код ниже).
Тег [h1] изменит размер и вес шрифта. Как вы можете видеть в коде, я вывожу строки текста. Пример текстовой строки: Это ваш [strong]посадочный талон[/strong]. Пожалуйста, сохраните этот PDF-файл на своем смартфоне или планшете и [strong]покажите его у выхода на посадку[/strong].
Я хотел бы сделать текст между [сильным] полужирным шрифтом. Чтобы сделать это с помощью Zend_PDF, мне нужно выделить файл TTF жирным шрифтом, а затем найти текущую координату X и вызвать $this->pdf()->drawText(текст, координата X, координата Y, кодировка). Я часами думал и пытался написать код, который делает это возможным (пробовал использовать взорваться, preg_match_all и т. д.), но я не могу заставить его работать...
Я считаю, что я не единственный с этой проблемой, и я надеюсь, что кто-то думал об этом и может немного помочь, рассказав, как он или она это сделал...
Надеюсь услышать от кого-нибудь и заранее спасибо!
/**
* drawSplittedText()
*
* @param array $text
* @return object Application_Plugin_PdfPlugin
*/
public function drawSplittedText(Array $text)
{
// Count the number of rows.
$textRowCount = count($text);
$i = 0;
foreach ($text as $row)
{
// Replace tabs, because they're not outputted properly.
$row = str_replace("\t", ' ', $row);
// If the character encoding of the currrent row not is UTF-8, convert the row characters to UTF-8.
if (($rowEncoding = mb_detect_encoding($row)) != 'UTF-8') {
$row = iconv($rowEncoding, 'UTF-8', $row);
}
// Output row on PDF
$this->pdf()->drawText($row, $this->_defaultMarginleft, $this->currentY, 'UTF-8');
$this->newLine();
++$i;
}
return $this;
}